我在router.js文件中使用此语句。
var script = ('./script');
router.get('/getCustomer/:id',function (request, response) {
console.log('get method called.......');
script.getSingleCustomer(mongo.DATABASE, response);
});
和我的script.js
var Customer = require('./customerModel'); //my schema is defined in this script
module.exports = {
getSingleCustomer : function(database, request, response){
// var user = new Customer({
// _id: request.params.id
// });
database.collection('customer').findOne({}, function (error, results) {
if (error) {
console.log(error);
response.json({statusCode: 400, statusData: 'The customer is not registered...', responseData: [results]});
}
console.log(results);
response.json({statusCode: 200, statusData: 'Success', responseData: [results]});
});
}
};
现在我没有实现任何基于id的查询,我只需要访问数据库并将结果发送到Android应用程序,我收到以下错误:
TypeError: Cannot read property 'json' of undefined
at C:\Users\chhat\Upcomers Tech\customer\script.js:17:21
at handleCallback (C:\Users\chhat\Upcomers Tech\node_modules\mongodb\lib\utils.js:120:56)
at C:\Users\chhat\Upcomers Tech\node_modules\mongodb\lib\collection.js:1417:5
at handleCallback (C:\Users\chhat\Upcomers Tech\node_modules\mongodb\lib\utils.js:120:56)
at C:\Users\chhat\Upcomers Tech\node_modules\mongodb\lib\cursor.js:682:5
at handleCallback (C:\Users\chhat\Upcomers Tech\node_modules\mongodb-core\lib\cursor.js:171:5)
at nextFunction (C:\Users\chhat\Upcomers Tech\node_modules\mongodb-core\lib\cursor.js:682:5)
at C:\Users\chhat\Upcomers Tech\node_modules\mongodb-core\lib\cursor.js:593:7
at queryCallback (C:\Users\chhat\Upcomers Tech\node_modules\mongodb-core\lib\cursor.js:232:18)
at C:\Users\chhat\Upcomers Tech\node_modules\mongodb-core\lib\connection\pool.js:469:18
at _combinedTickCallback (internal/process/next_tick.js:73:7)
at process._tickCallback (internal/process/next_tick.js:104:9)
请帮我发送script.js的回复。 我正在为Android应用程序开发一个带有mongodb的node.js服务器,所以建议我一些服务器设计结构,因为我是后端开发的新手。
答案 0 :(得分:0)
您正在使用两个参数调用该函数
script.getSingleCustomer(mongo.DATABASE, response);
但该功能需要3
getSingleCustomer: function(database, request, response)
因此request
将保留response
的实际内容,response
中的undefined
将getSingleCustomer()
。
要解决这个问题,要么不要让函数期望request
(最好是,因为你不能在函数中使用它
getSingleCustomer: function(database, response)
或者用三个参数调用它(在这种情况下无意义)。
script.getSingleCustomer(mongo.DATABASE, request, response);
并修正function(databse, response)
中的拼写错误,database