javascript - Node/Express:如何分离服务器端和客户端 javascript?
问题描述
我正在构建一个 JS 项目来学习新技能,但在区分客户端代码和服务器端代码时遇到了麻烦。当前设置是一个以 ExpressJS 作为依赖项的节点应用程序。
当我运行npm run build && npm run dev
时,基本 html/css 会按预期提供,但我的控制台中的 express 脚本出现错误。
main.fb6bbcaf.js:116 未捕获类型错误:无法在 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}`));
我在这里找到了一个有类似问题的人,但是对我来说没有点击的(而且我似乎找不到合适的问题)是如何在我的项目中分离客户端和服务器端代码。我觉得我正在尝试在提供给客户的代码中使用 express,但我不知道该放在哪里。
在同时使用 node 和 express 的项目中是否有服务器端代码的最佳实践位置?
解决方案
错误代码表明您对 Express 和 body-parser 模块有问题。让我们从头开始解决这个问题。
// 通过命令行创建新项目
1)cd到项目目录
2)创建app.js
3)npm init -y // 创建项目
4)npm install express body-parser //安装需要的模块
//打开app.js并使用以下代码配置服务器
const express = require("express");
const bodyParser = require("body-parser");
let app = express();
app.use(bodyParser.urlencoded({extended: true}));
app.get("/",function(req,res){
res.send("Hello world");
})
app.listen(3000, function() {
console.log("Server started on port 3000");
});
//现在运行 app.js
1)节点app.js
2)在浏览器中,转到“localhost:3000”
这应该解决了你的问题。当您向服务器发送请求时使用 body-parser。如果没有向您的服务器提交发布请求,它不应该显示任何正文解析器错误。
推荐阅读
- python - 如何在 django 中使用 python 脚本?
- c# - 使用 roslyn 提取被调用的方法信息
- typescript - 使用新的自定义属性扩展库类属性
- java - 在弹出窗口中使用 TextBubbleBorder
- python - 如何在 JSON 文件中附加字典,同时保持正确的 JSON 格式
- r - 如何在条件下提取另一个数据帧的几个观察结果并将其包含在主数据帧中?
- c# - 我想知道为什么我的处理函数同时运行它的所有函数而不是相互等待?
- reactjs - 使用 URL 链接作为参数的反应路由
- css - ReactJs - 在组件周围显示组件
- java - Struts2 一类有 2 个结果错误?