Node.js崩溃了!语法错误:意外的非法标记。

3

突然间什么都不起作用了。我所做的唯一一件事就是添加了一个新文件到“controllers”文件夹中,然后又将其删除。这可能出了什么问题?这意味着什么?

node/last/test4/controllers/.DS_Store:1

^

module.js:311
    throw err;
          ^
SyntaxError: Unexpected token ILLEGAL
    at Module._compile (module.js:429:25)
    at Object..js (module.js:459:10)
    at Module.load (module.js:348:31)
    at Function._load (module.js:308:12)
    at Module.require (module.js:354:17)
    at require (module.js:370:17)
    at /Users/henrikpetersson81/node/last/test4/controllers.js:8:13
    at Array.forEach (native)
    at Object.oncomplete (node/last/test4/controllers.js:6:15)

controllers.js(自从它工作以来,没有任何更改):

var fs = require('fs');

module.exports = function(app, service){
    fs.readdir(__dirname + '/controllers', function(err, files){
        if (err) throw err;
        files.forEach(function(file){
            var name = file.replace('.js', '');
            require('./controllers/' + name)(app, service);
        });
    });
};
1个回答

9
因为Mac创建了一个名为.DS_STORE的文件。现在一个辅助程序正在自动扫描controllers文件夹并将其包含进去。Node认为这是一个controller,但由于它不是JavaScript,因此崩溃了。

或者更改代码以忽略文件名以点开头的任何文件。这些文件在UNIX中通常是隐藏的;它们可能不是您实际想要加载的控制器。 - Joe White
谢谢你的回答。我找到了文件并删除了它。然而,现在我收到另一个错误信息(请参见更新的问题)。App.js位于项目的根目录中,从未在./controller中出现过,所以这真的很奇怪 :/ - holyredbeard
它试图按照这行代码 require('./controllers/' + name)(app, service); 将 app.js 作为一个模块进行包含,但是该文件并不存在。 - Menztrual
哈哈,不用在意我上一条评论,我在尝试启动节点时进入了控制器文件夹;)!我已经编码超过10个小时了,有点累了。 - holyredbeard

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接