Node JS:app.get() 未按预期运行
NodeJS : app.get() does not operate as I exected
我是 NodeJS 的新手,这是我的 routes/recom.js,它现在正在做很多逻辑工作。稍后我会将逻辑移至其他地方。但是现在我需要先解决错误。
exports.scrape = function(req, res) {
var APIURI = 'https://www.kimonolabs.com/api/abbxqyg4?apikey=6IrCGNcorodTBSfNawS6sZkHw3LeZVIN';
var receivedJason;
res.type('text/plain');
request({
url: APIURI,
json: true
}, function (error, response, body) {
if (!error && response.statusCode === 200) {
console.log('API Retrieved Successfully!');
res.json(body);
receivedJason = JSON.stringify(body);
var node = db.createNode({hello: 'world'}); // instantaneous, but...
node.save(function (err, node) { // ...this is what actually persists.
if (err) {
console.error('Error saving new node to database:', err);
} else {
console.log('Node saved to database with id:', node.id);
}
});
}
});
};
这是我的 app.js
var express = require('express');
var recom = require('./server/routes/recom.js');
var app = express();
app.get('/', recom.scrape);
app.listen(process.env.PORT || 2019);
我收到以下错误:
Route.get() requires callback functions but got a [object Undefined]
如有任何帮助,我们将不胜感激。
错误似乎在导出中。在 routes/recom.js
中使用:
module.exports.scrape = function(req, res) { //...
您得到 [object Undefined]
的原因是 exports
与 module.exports
不是同一个对象,因此查找的项目不存在。
此外,在 app.js 中您可能需要使用以下之一:
var recom = require('routes/recom.js');
// or:
var recom = require('server/routes/recom.js');
取决于你的完整结构。
我是 NodeJS 的新手,这是我的 routes/recom.js,它现在正在做很多逻辑工作。稍后我会将逻辑移至其他地方。但是现在我需要先解决错误。
exports.scrape = function(req, res) {
var APIURI = 'https://www.kimonolabs.com/api/abbxqyg4?apikey=6IrCGNcorodTBSfNawS6sZkHw3LeZVIN';
var receivedJason;
res.type('text/plain');
request({
url: APIURI,
json: true
}, function (error, response, body) {
if (!error && response.statusCode === 200) {
console.log('API Retrieved Successfully!');
res.json(body);
receivedJason = JSON.stringify(body);
var node = db.createNode({hello: 'world'}); // instantaneous, but...
node.save(function (err, node) { // ...this is what actually persists.
if (err) {
console.error('Error saving new node to database:', err);
} else {
console.log('Node saved to database with id:', node.id);
}
});
}
});
};
这是我的 app.js
var express = require('express');
var recom = require('./server/routes/recom.js');
var app = express();
app.get('/', recom.scrape);
app.listen(process.env.PORT || 2019);
我收到以下错误:
Route.get() requires callback functions but got a [object Undefined]
如有任何帮助,我们将不胜感激。
错误似乎在导出中。在 routes/recom.js
中使用:
module.exports.scrape = function(req, res) { //...
您得到 [object Undefined]
的原因是 exports
与 module.exports
不是同一个对象,因此查找的项目不存在。
此外,在 app.js 中您可能需要使用以下之一:
var recom = require('routes/recom.js');
// or:
var recom = require('server/routes/recom.js');
取决于你的完整结构。