Javascript 使用angularjs将数据从express节点发布到mongodb
嗨,我正在使用平均堆栈构建一个应用程序,带有一个角度控制器,可以成功加载初始数据。但是,当添加用户时,它会尝试将用户对象发布到服务器端,但是“/api/contacts”返回一个错误500,(TypeError:undefined不是一个函数)。代码如下: //完整错误消息:Javascript 使用angularjs将数据从express节点发布到mongodb,javascript,node.js,mongodb,Javascript,Node.js,Mongodb,嗨,我正在使用平均堆栈构建一个应用程序,带有一个角度控制器,可以成功加载初始数据。但是,当添加用户时,它会尝试将用户对象发布到服务器端,但是“/api/contacts”返回一个错误500,(TypeError:undefined不是一个函数)。代码如下: //完整错误消息: TypeError: undefined is not a function at module.exports.postcontactlist (/Users/Sites/express/api/contacts
TypeError: undefined is not a function
at module.exports.postcontactlist (/Users/Sites/express/api/contacts.js:22:11)
at callbacks (/Users/Sites/express/node_modules/express/lib/router/index.js:164:37)
at param (/Users/Sites/express/node_modules/express/lib/router/index.js:138:11)
at pass (/Users/Sites/express/node_modules/express/lib/router/index.js:145:5)
at Router._dispatch (/Users/Sites/express/node_modules/express/lib/router/index.js:173:5)
at Object.router (/Users/Sites/express/node_modules/express/lib/router/index.js:33:10)
at next (/Users/express/node_modules/express/node_modules/connect/lib/proto.js:193:15)
at Object.methodOverride [as handle] (/Users/Sites/express/node_modules/express/node_modules/connect/lib/middleware/methodOverride.js:48:5)
at next (/Users/Sites/express/node_modules/express/node_modules/connect/lib/proto.js:193:15)
at Object.urlencoded [as handle] (/Users/Sites/express/node_modules/express/node_modules/connect/lib/middleware/urlencoded.js:46:27)
at next (/Users/Sites/express/node_modules/express/node_modules/connect/lib/proto.js:193:15)
at /Users/Sites/express/node_modules/express/node_modules/connect/lib/middleware/json.js:91:7
at IncomingMessage.onEnd (/Users/Sites/express/node_modules/express/node_modules/connect/node_modules/raw-body/index.js:57:7)
at IncomingMessage.g (events.js:199:16)
at IncomingMessage.emit (events.js:104:17)
at _stream_readable.js:908:16
POST /api/contacts 500 4ms - 1.69kb
//server.js路由
var contactlist = require("./api/contacts");
...
app.get("/api/contacts", contactlist.getcontactlist);
app.post("/api/contacts", contactlist.postcontactlist);
var express = require("express");
var http = require("http");
var bp = require("body-parser");
var mongoose = require("mongoose");
var schema = require("../models/contactsdb");
var Contact = mongoose.model("Contact", schema.contactSchema, "contactlist");
module.exports = {
getcontactlist : function (request, response) {
Contact.find({ }, function (err, docs) {
response.send(docs);
});
},
postcontactlist : function(request, response){
console.log("request: " + request.body);
Contact.insert({ "name" : "Vincent Moyet", "email" : "vincentmoyet@gmail.com", "number" : "0987654321" }, function(err, docs){
if(err){
var errorMsg = "error: " + err.message;
console.log(errorMsg);
response.status(500).send(err);
} else {
console.log("success");
response.status(200).end();
}
});
}
};
///api/contacts.js
var contactlist = require("./api/contacts");
...
app.get("/api/contacts", contactlist.getcontactlist);
app.post("/api/contacts", contactlist.postcontactlist);
var express = require("express");
var http = require("http");
var bp = require("body-parser");
var mongoose = require("mongoose");
var schema = require("../models/contactsdb");
var Contact = mongoose.model("Contact", schema.contactSchema, "contactlist");
module.exports = {
getcontactlist : function (request, response) {
Contact.find({ }, function (err, docs) {
response.send(docs);
});
},
postcontactlist : function(request, response){
console.log("request: " + request.body);
Contact.insert({ "name" : "Vincent Moyet", "email" : "vincentmoyet@gmail.com", "number" : "0987654321" }, function(err, docs){
if(err){
var errorMsg = "error: " + err.message;
console.log(errorMsg);
response.status(500).send(err);
} else {
console.log("success");
response.status(200).end();
}
});
}
};
有人能告诉我哪里出了问题吗?看起来你没有向客户汇报成功情况
postcontactlist : function(request, response){
Contact.insert(request.body, function(err, docs){
if(err){
console.log("error: " + err.message);
---> response.status(500).send(err)
} else {
console.log("success");
---> response.status(200).end()
}
});
}
看起来您没有向客户报告成功
postcontactlist : function(request, response){
Contact.insert(request.body, function(err, docs){
if(err){
console.log("error: " + err.message);
---> response.status(500).send(err)
} else {
console.log("success");
---> response.status(200).end()
}
});
}
看起来您没有向客户报告成功
postcontactlist : function(request, response){
Contact.insert(request.body, function(err, docs){
if(err){
console.log("error: " + err.message);
---> response.status(500).send(err)
} else {
console.log("success");
---> response.status(200).end()
}
});
}
看起来您没有向客户报告成功
postcontactlist : function(request, response){
Contact.insert(request.body, function(err, docs){
if(err){
console.log("error: " + err.message);
---> response.status(500).send(err)
} else {
console.log("success");
---> response.status(200).end()
}
});
}
[我发布了另一个答案,因为问题作者已经改写了他们的问题-@learningAngularIsFrustrating:你真的应该写一个新问题,而不是对原来的问题进行如此大的修改] 第2行的代码是什么?(/Users/Sites/express/api/contacts.js:22:11)?我猜是
插入的,我想你最好使用保存(这是我在与你类似的情况下使用的)
[我发布了另一个答案,因为问题作者已经改写了他们的问题-@learningAngularIsFrustrating:你真的应该写一个新问题,而不是对原来的问题进行如此大的修改]
第2行的代码是什么?(/Users/Sites/express/api/contacts.js:22:11)?我猜是插入的,我想你最好使用保存(这是我在与你类似的情况下使用的)
[我发布了另一个答案,因为问题作者已经改写了他们的问题-@learningAngularIsFrustrating:你真的应该写一个新问题,而不是对原来的问题进行如此大的修改]
第2行的代码是什么?(/Users/Sites/express/api/contacts.js:22:11)?我猜是插入的,我想你最好使用保存(这是我在与你类似的情况下使用的)
[我发布了另一个答案,因为问题作者已经改写了他们的问题-@learningAngularIsFrustrating:你真的应该写一个新问题,而不是对原来的问题进行如此大的修改]
第2行的代码是什么?(/Users/Sites/express/api/contacts.js:22:11)?我猜是插入的,我想你最好使用保存(这是我在与你类似的情况下使用的)
你好,Simon H,我已经根据你的建议更新了我的代码,并添加了一个发布内容的屏幕截图。我现在甚至直接插入了对象。但是仍然返回500错误状态。你在节点consle中收到了什么消息。我不认为这是一个角度问题,但你的服务器由于某种原因无法工作,并且发布了pictu来自客户端的res不会有帮助Hi Simon H,我更新了主帖子,现在包含了完整的错误堆栈。查看了。但是,仍然无法确定错误的来源。Hi Simon H,我已经根据您的建议更新了我的代码,并添加了发布内容的屏幕截图。我甚至现在直接插入对象。但是返回500错误状态。您在节点consle中收到了什么消息。我不认为这是一个角度问题,但您的服务器由于某些原因无法工作,从客户端发布图片也没有帮助。Hi Simon H,我更新了主帖子,现在包含了完整的错误堆栈。查看了。但是,仍然无法识别错误的来源。嗨,Simon H,我已经用你的建议更新了我的代码,并添加了发布内容的屏幕截图。我甚至现在直接插入对象。但是仍然返回500错误状态。你在节点consle中收到了什么消息。我不认为这是一个角度问题,但你的服务器在某些方面没有工作原因和从客户端发布的图片不会有任何帮助Hi Simon H,我更新了主帖子,现在包含了完整的错误堆栈。查看了。但是,仍然无法确定错误的来源。Hi Simon H,我已经根据您的建议更新了我的代码,并添加了发布内容的屏幕截图。我甚至现在直接插入了t他反对。但是仍然返回500错误状态。你在节点consle中得到了什么消息。我不认为这是一个角度问题,但你的服务器由于某种原因无法工作,从客户端发布图片也没有帮助。嗨Simon H,我更新了主帖子,现在包含了完整的错误堆栈。但是,仍然无法确定错误的来源。嗨,Simon H,抱歉,我对Stackflow还是比较新的。我已经尝试了“.save”而不是“.insert”但是,你能通过查看错误消息中的行号来检查它找不到的函数吗?我刚刚做了这件事,但是无法确定它不起作用的原因。不幸的是,除此之外,我还是node express的新手。试试我的新建议吧!谢谢你的帮助!!!但是我发现我的代码可以使用静态的“create”方法。这很好,因为我现在了解了这两种方法。嗨,Simon H,很抱歉,我对Stackflow还比较陌生。我已经尝试了“.save”而不是“.insert”但是,你能通过查看错误消息中的行号来检查它找不到的函数吗?我刚刚做了这件事,但是无法确定它不起作用的原因。不幸的是,除此之外,我还是node express的新手。试试我的新建议吧!谢谢你的帮助!!!但是我发现我的代码可以使用静态的“创建”方法。这很好,因为我现在理解了这两种方法。嗨,Simon H,很抱歉,我对Stackflow还是比较新的。我已经尝试过了。save“inst”