我对路由器的NodeJS一些问题,这是我的代码:需要有关Node.js的路由器
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){
// body...
if(err){
console.log(err);
}else{
console.log('database ok')
}
});
app.use(bodyParser.urlencoded({ extend: true }));
app.use(bodyParser.json());
app.use(morgan('dev'));
//call api
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) {
// body...
if (err) {
console.log(err);
}else{
console.log('listen in port ' + config.port)
}
})
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('/daftar', 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;
}
res.json({ message: 'user telah dibuat'});
});
});
return api;
}
我的问题,当我尝试发布使用/ api/daftar url的响应无法找到的东西,但是当我尝试将我的api.post()
移动到我的server.js中时,它可以正常工作。我只是将api.post()
更改为app.post()
你能告诉我我做错了什么吗?
把'api.js'里面的'api.post()'改成'app.post()',你不需要express作为param也不需要''api = express.Router();' – Hamed