首页 > 解决方案 > 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 的项目中是否有服务器端代码的最佳实践位置?

标签: javascriptnode.jsexpress

解决方案


错误代码表明您对 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。如果没有向您的服务器提交发布请求,它不应该显示任何正文解析器错误。


推荐阅读