【发布时间】:2020-07-08 05:32:50
【问题描述】:
我正在构建一个 JS 项目来学习新技能,但在区分客户端代码和服务器端代码时遇到了麻烦。当前设置是一个以 ExpressJS 作为依赖项的节点应用程序。
当我运行 npm run build && npm run dev 时,基本 html/css 会按预期提供,但我在控制台中收到来自 express 脚本的错误。
main.fb6bbcaf.js:116 未捕获类型错误:无法读取属性 未定义的“原型” 在 Object.parcelRequire.node_modules/express/lib/response.js.safe-buffer (response.js:42) 在 newRequire (main.fb6bbcaf.js:47) 在 localRequire (main.fb6bbcaf.js:53) 在 Object.parcelRequire.node_modules/express/lib/express.js.body-parser (express.js:22) 在 newRequire (main.fb6bbcaf.js:47) 在 localRequire (main.fb6bbcaf.js:53) 在 Object.parcelRequire.node_modules/express/index.js../lib/express (index.js:11) 在 newRequire (main.fb6bbcaf.js:47) 在 localRequire (main.fb6bbcaf.js:53) 在 Object.parcelRequire.js/main.js.express (main.js:1)
作为参考,我仍在尝试从 express 文档中获取示例代码以运行,所以我的整个 main.js 文件如下所示:
const express = require('express');
const app = express();
const port = 1234;
app.get('/hello', (req, res) => res.send('Hello World!'));
app.listen(port, () => console.log(`Example app listening at http://localhost:${port}`));
我找到了一个有类似问题的人HERE,但是我没有点击(而且我似乎找不到合适的问题)是如何分离客户端和服务器端我的项目中的代码。我感觉我正在尝试在提供给客户的代码中使用 express,但我不知道该放在哪里。
在同时使用 node 和 express 的项目中是否有服务器端代码的最佳实践位置?
【问题讨论】:
-
您显示的代码本身不会产生您显示的错误,因为该代码中没有正文解析器模块。我们需要查看导致该错误的实际代码。我不明白您为什么认为此错误与客户端 Javascript 有任何关系。
-
@jfriend00 这就是项目中所有的 js 代码。我从未使用过 body-parser 模块。它是作为依赖项的依赖项安装的。完成 html/css 后,我才开始研究 js。不必太吝啬。
-
如果这就是您正在运行的所有代码,那么您的安装显然有问题。您需要卸载该目录中的 express 和任何其他模块,确保安装它们的
node_modules目录完全干净。为你的应用清理你的 package.json 文件并从头开始重新安装 Express。我仍然完全不明白这个问题与客户端 Javascript 有什么关系。您在这里展示的只是服务器端 Javascript。 -
而且,我建议您尝试运行
node main.js以消除可能在您的 package.json 中作为麻烦来源的任何其他内容。
标签: javascript node.js express