我刚刚继承了一个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/