angularjs TypeError:require(...)不是函数,nodejs运行错误

时间:2016-08-27 22:01:04

标签: javascript node.js express heroku

我正在实现与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);
});

这是我的文件夹结构:
enter image description here

最终目标是将其部署到heroku。

2 个答案:

答案 0 :(得分:0)

您似乎缺少requireJSexpress

在您的要求声明正上方添加此行 - 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"
    ]
}