0
私はスタックを学習しています。私は1つのsignup apiを作成しましたが、POSTMANを使用してテストしていますが、POST API /サインアップできないほど奇妙なエラーが発生しています。以下は POST api/signupできません
は、エラーの画像です:マイ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