const express = require('express');
const bodyParser = require('body-parser');
const app = express();
const port = process.env.PORT || 3000;
app.use(bodyParser.json());
app.use(bodyParser.urlencoded({
extended: true,
}));
app.use('/', require('../routes')(express));
exports.server = app.listen(port, () => {
console.log('Server active on', port);
});
我错过了一个npm包吗?
错误
TypeError: require(...) is not a function at Object.<anonymous> (C:\xampp\htdocs\url-shortener\src\server.js:12:34 at Module._compile (module.js:571:32) at Object.Module._extensions..js (module.js:580:10) at Module.load (module.js:488:32) at tryModuleLoad (module.js:447:12) at Function.Module._load (module.js:439:3) at Module.runMain (module.js:605:10) at run (bootstrap_node.js:418:7) at startup (bootstrap_node.js:139:9) at bootstrap_node.js:533:3
答案 0 :(得分:0)
您的../routes
源文件未导出函数。
尝试替换此行:
app.use('/', require('../routes')(express));
使用:
console.log( require('../routes') );
我打赌它打印一个对象({ ... }
)而不是一个函数。
在../routes
文件中,您需要明确导出重要功能:
module.exports = importantFunction;
function importantFunction(string) {
console.log(string);
}
现在您导入它的脚本可以调用它。
require('../routes')("hi") // should log "hi"