Nodejs SyntaxError:无效或意外

时间:2018-01-17 06:10:42

标签: javascript node.js express

在我的index.js文件中,我有这个错误

C:\Users\Utkarsh\Desktop\LearningNode\notable\app\routes\index.js:1
(function (exports, require, module, __filename, __dirname) { ��c
                                                              ^

SyntaxError: Invalid or unexpected token
    at createScript (vm.js:80:10)
    at Object.runInThisContext (vm.js:139:10)
    at Module._compile (module.js:607:28)
    at Object.Module._extensions..js (module.js:654:10)
    at Module.load (module.js:556:32)
    at tryModuleLoad (module.js:499:12)
    at Function.Module._load (module.js:491:3)
    at Module.require (module.js:587:17)
    at require (internal/module.js:11:18)
    at Object.<anonymous> (C:\Users\Utkarsh\Desktop\LearningNode\notable\server.js:11:1)

index.js的实际内容是:

const noteRoutes = require("./note_routes");

module.exports = function(app, db) {
    noteRoutes(app, db);
}

我检查了奇怪的引号和目录名称。什么都行不通。似乎问题就在于这一行。

const noteRoutes = require("./note_routes");

编辑:

note_routes.js

module.exports = function(app, db) {
    app.post("./notes", (req, res) => {
        // We'll create the note here
        res.send("hello");
    })
}

节点版本是v8.9.4

我使用了崇高的文字3。

4 个答案:

答案 0 :(得分:4)

行。我找到了解决这个问题的方法。

问题是我使用PowerShell&#39; index.js命令在我的项目中创建了Out-File index.js文件。这可能会导致一些编码问题。

在简单地通过right-click > New file > index.js创建文件时,我在运行代码时没有出现这样的错误。

答案 1 :(得分:0)

我有同样的问题,不同的解决方案。

由PowerShell创建的index.js文件使用UCS-2 LE BOM进行编码。

要更改文件以便节点可以运行它(而不是删除并创建新文件),我使用NotePad ++将编码更改为UTF-8

答案 2 :(得分:0)

  1. 复制第一个 index.js 文件

  2. 的内容
  3. 只需使用右键单击上下文菜单手动创建新的index.js文件,然后在新的index.js文件中粘贴相同的内容

因为它是使用shell创建的文件编码不同的问题

答案 3 :(得分:0)

我也面临类似的问题。我只是将“ node_modules”重命名为“ old_node_modules”并执行了“ npm install”命令。这花了一些时间,但问题得到解决,我得以启动该项目。后来我删除了“ old_node_modules”文件夹。