我正在实现与here
找到的非常相似的代码当我运行节点web.js时,我得到一个 TypeError:require(...)不是函数 我为什么要得到这样的错误?问题出在哪里?
这是我的web.js
var express = require('express');
var apiFiles = './backend';
var wwwFiles = './app';
require(apiFiles + '/api')(function(backend) {
var www = express.static(wwwFiles);
express()
.use('/api', backend)
.use('/', www)
.listen(process.env.PORT || 3000);
});
答案 0 :(得分:0)
您似乎缺少requireJS
或express
。
在您的要求声明正上方添加此行 -
console.log('require');
如果传入函数,则只需运行npm install --save express
(或express@whatever-version-you-want
否则您可能需要重新设置应用。我非常确定requireJS是节点核心的一部分。
答案 1 :(得分:0)
在tsconfig.json中,如果将“module”设置为“system”,请尝试将其更改为“commonjs”。这对我有用。
{
"compilerOptions": {
"target": "es5",
"module": "commonjs",
"moduleResolution": "node",
"sourceRoot": "./client",
"sourceMap": true,
"emitDecoratorMetadata": true,
"experimentalDecorators": true,
"removeComments": false,
"noImplicitAny": false
},
"exclude": [
"../node_modules",
"../typings/main",
"../typings/main.d.ts"
]
}