0
同一主題有幾個問題,但我無法解決我的問題。錯誤:.post()需要回調函數,但得到[對象未定義]不起作用
Error: Route.post() requires callback functions but got a [object Undefined]
at Route.(anonymous function) [as post] (/home/kevin/proyectoApp/node_modules/express/lib/router/route.js:196:15)
at EventEmitter.app.(anonymous function) [as post] (/home/kevin/proyectoApp/node_modules/express/lib/application.js:481:19)
at module.exports (/home/kevin/proyectoApp/app/rutas.js:7:5)
at Object.<anonymous> (/home/kevin/proyectoApp/index.js:21:26)
at Module._compile (module.js:398:26)
at Object.Module._extensions..js (module.js:405:10)
at Module.load (module.js:344:32)
at Function.Module._load (module.js:301:12)
at Function.Module.runMain (module.js:430:10)
at startup (node.js:141:18)
at node.js:1003:3
Index.js
var express=require('express');
var app=express();
var morgan=require('morgan')
var mongoose=require('mongoose');
var bodyParser=require('body-parser');
var methodOverride=require('method-override');
mongoose.connect('mongodb://localhost/local');
app.use(express.static(__dirname+'/public'));
app.use(morgan('dev'));
app.use(bodyParser.urlencoded({ extended: false }))
app.use(bodyParser.json())
//Endpoints
require('./app/rutas.js')(app);
var server=app.listen(3001,function() {
var host = "localhost";
var port = server.address().port;
console.log('servidor escuchando en http://%s:%s', host, port);});
module.exports=app;
rutas.js
var Controller=require('./controller.js');
var User=require('./models/user.js');
module.exports=function(app){
app.get('/user/all',Controller.Read);
app.put('/user/all/:todo_id',Controller.Update);
app.post('/user/all',Controller.Create);
app.delete('/user/all/todo_id',Controller.Delete);
app.get('/',function(req,res){
console.log("Este si carga");
res.sendFile('./public/index.html');
});
}
user.js的
var mongoose=require('mongoose');
var Schema=mongoose.Schema;
var Schemausuario=new Schema({
nombre:String,
apellido:String,
username:{type:String,requiere:true,unique:true}
});
var User=mongoose.model('User',Schemausuario);
module.exports=User;
controller.js
var User=require('./models/user.js');
var Create=function (req,res){
var nombre=req.body.nombre;
var apellido=req.body.apellido;
var nick=req.body.username;
console.log("Datos"+nombre+apellido+nick);
User.create({
nombre:nombre,
apellido:apellido,
username:nick
},function(err,usr){
if(err) console.log("Error al crear el usuario");
else{
console.log("Usuario creado correctamente");
}
});
User.find({},function(err,user){
if(err) console.log("Hay un error al buscar los usuarios");
else{
console.log("Los usuarios encontrados son "+user)
res.json(user);
}
});
};
var Read=function (req,res){
User.find({},function(err,user){
if(err) return console.log("error="+err);
else{
res.json(user);
}
});
};
var Update=function(req,res){
User.update({_id : req.params.todo_id},
{$set:{nombre : req.body.nombre,apellido: req.body.apellido, username: req.body.username}},
function(err, persona) {
if (err)
res.send(err);
// Obtine y devuelve todas las personas tras crear una de ellas
User.find(function(err, user) {
if (err)
res.send("Ha habido un error"+err)
console.log("Se va a enviar "+persona)
res.json(user);
});
});
};
var Delete=function(req,res){
User.remove({
_id: req.params.todo_id
}, function(err, todo) {
if(err){
res.send("Hay un error hdp"+err);
}
else{
console.log("Usuario eliminado correctamente")
}
});
User.find({},function(err, todos) {
if(err){
res.send(err);
}
res.json(todos);
});
};
module.exports={
Create:Create,
Update:Update,
Read:Read,
Delete:Delete
}
我使用的版本 「表達」, 「^ 4.13.3」
你能幫助我嗎?謝謝。 我會上傳它的任何其他細節發現省略。 我會上傳它的任何其他細節發現省略。
感謝,我開始運行。 –
@Kevin AB接受答案,如果它真的解決了你的問題。這樣對其他人會有幫助。 – Subburaj
@KevinAB嗨你能解釋爲什麼這不起作用:'app.post('/ user/all',Controller.Create);' – btzr