0
我學習MEAN堆棧,我做了一個註冊API,同時使用郵差測試它,我獲得這些奇怪的錯誤是不能發佈API /註冊。無法發佈API /註冊
下面是錯誤的形象:
我server.js文件:
var express=require('express');
var bodyParser=require('body-parser');
var morgan=require('morgan');
var config=require('./config');
var mongoose=require('mongoose');
var app=express();
mongoose.connect(config.database,function(err){
if(err){
console.log(err);
}else{
console.log("Coonnected to database");
}
});
app.use(bodyParser.urlencoded({extended: true}));
app.use(bodyParser.json());
app.use(morgan('dev'));
var api=require('./app/routes/api')(app,express);
app.use('api',api);
app.get('/home',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 Schema=mongoose.Schema;
var bcrypt=require('bcrypt-node');
var UserSchema=new Schema({
name: String,
username: String,
password: String
});
UserSchema.pre('save',function(next){
var user=this;
if(!user.unModified('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);
api.js文件:
var User=require('../models/user');
var config=require('../../config');
var secretKey=config.secretKey;
module.exports=function(app,express){
var api=express.Router();
api.post('/signup',function(req,res){
var user=new User({
name: req.body.name,
username: req.body.username,
password: req.body.password
});
user.save(function(err){
if(err){
res.send(err);
return;
}
else
res.json({ message:'User has been created'});
});
});
return api;
}
我不知道我錯過了什麼。
您的客戶端員額的要求到端點/ API /註冊,但在服務器上你有路線/註冊。無論是固定或然後再試 –
你嘗試'app.use( '/ API',API);',而不是'app.use( 'API',API);'? – mscdex
另外,請不要發佈文字圖像。相反,在問題中發佈相關文本,以便文本更易於訪問和搜索,並且還可以防止圖像鏈接在某個時間點死亡。 – mscdex