javascript - 排查 Node.js 错误

标签 javascript jquery node.js

我刚刚继承了一个node.js 项目,我怀疑 Node 项目所需的一些原始样板尚未完成。这也是我第一次使用node.js。

无论如何,当我运行 node app.js 时,正确的端口会启动,但应用程序无法加载许多脚本文件(错误“Uncaught SyntaxError: Unexpected token” <"在每个无法加载的js文件上给出)。我尝试过解决此错误,网上有很多资源,但我无法确定它。我尝试将 type="text/javascript" 添加到每个 script 选项卡,但它没有改变任何内容。

当我点击解决脚本加载路径不正确的问题时,它们都把我带到了index.html页面。因此,由于某种原因,app.js 文件中的这部分代码似乎不起作用:

// serve all asset files from necessary directories
app.use('/js', express.static(__dirname + '/public/js'));
app.use('/css', express.static(__dirname + '/public/css'));
app.use('/partials', express.static(__dirname + '/public/partials'));
app.use('/lib', express.static(__dirname + '/public/lib'));

// JSON API
app.get('/api/name', api.name);

// redirect all others to the index (HTML5 history)
app.all('/*', function(req, res, next) {
    res.sendfile('index.html', { root: __dirname + '/public' });
});

但是,它看起来应该可以正常工作(遵循文件的路径)。有什么想法吗?

最佳答案

几乎可以肯定,app.all 路由正在为应该发送 javascript 的请求发回 HTML。您需要查看浏览器作为脚本标签获取但服务器正在发回 HTML 的特定 URL。相应的 .js 文件可能不在 public/js 下,这会导致路由器继续执行包罗万象的路由。

旁注,您可以将您的 express.static 路由压缩为此,因为您的 URL 如何与文件系统结构保持一致。

// serve all asset files from necessary directories
app.use(express.static(__dirname + '/public'));

关于javascript - 排查 Node.js 错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24220650/

相关文章:

javascript - 防止 google recaptcha 设置 cookie (GDPR)

javascript - 如何在 adobe DTM 中延迟 s.t 调用?

javascript - 长数组的对象解构解决方案?

用于工作选项卡的 jQuery 1.5.1 脚本

javascript - HTML onclick 和 href

mysql - 如何让 BreezeJS 使用 Angular + Node 与 MySQL DB 对话?

node.js - Mongoose Bulk 不写入默认值

javascript - 需要一个 ROT47 JavaScript 实现

javascript - 在 jQuery 对话框中显示布局

node.js - Jenkins - docker : not found