簡體   English   中英

Node.js無法發布請求

[英]Node.js failed to post request

我使用node.js准備了一個測試程序,並在瀏覽器中提交了請求。 服務器可以成功啟動並成功連接到數據庫。 但是,當我在表單中輸入一些值並將其發布到localhost:3000 / api / signup時,瀏覽器返回“ Cannot POST”和404找不到。 誰能告訴我代碼中哪一部分出錯了? 謝謝!

 //server.js var express = require('express'); var bodyParser = require('body-parser'); var morgan = require('morgan'); var config = require('./config'); var mongoose = require('mongoose'); mongoose.connect(config.database, function(err){ if(err){ console.log(err); }else{ console.log('Connected to the database'); } }); var app = express(); app.use(bodyParser.urlencoded({extended: true})); app.use(bodyParser.json()); app.use(morgan('dev')); var api = require('./app/routes/api')(app, express); api.use('/api', api); app.get('*', function(req,res){ res.sendFile(__dirname + '/public/views/index.html'); }); app.listen(config.port, function(err){ if(err){ console.log(err); }else{ console.log("Listening on port 3000"); } }); 

 //user.js var mongoose = require('mongoose'); var bcrypt = require('bcrypt-nodejs'); var Schema = mongoose.Schema; var UserSchema = new Schema({ name: String, username: {type: String, required: false, index: {unique: true}}, password: {type: String, required: true, select: false} }); UserSchema.pre('save', function(next){ var user = this; if(!user.isModified('password')){ return next(); } bcrypt.hash(user.password, null, null, function(err, hash){ if(err){ return next(err); } user.password = hash; next(); }); }); UserSchema.methods.comparePassword = function(password){ var user = this; return bcrypt.compareSync(password,user.password); } module.exports = mongoose.model('User', UserSchema); 

您沒有任何POST處理程序。 這條線...

app.get('*', function(req,res){

...僅處理GET請求。 您可以將其更改為app.all(..) (我只會在測試期間建議這樣做),也可以創建一個app.post(...)處理函數。

請參閱此處的文檔以獲取有關如何為各種HTTP動詞創建處理程序的更多詳細信息。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM