node.js - 我们在什么文件中将 react 前端文件夹文件与后端文件夹文件与 server.js 和 mysql 数据库连接连接起来?
问题描述
我有带有反应组件和前端 css 库的前端文件夹文件。
在不同的文件夹中,我有带有 mysql 连接的 server.js 路由的后端文件。
当我在屏幕上输入输入时,输入不会保存到 mysql 数据库中。
问题:
- 在什么文件中,我应该将我的前端与后端连接起来?
- 我应该使用什么语句来连接我的前端和后端?
- 要启动前端,我使用:npm start 和启动后端,我使用:nodemon server.js。
问题:当我连接前端和后端时,我应该打开什么文件以便前端与后端对话->两者都开始?
解决方案
问题 1 答案 您可以通过多种方式做到这一点。我已经使用 Serverjs 完成了此操作,并以以下方式做出反应。
const express = require('express');
const bodyParser = require('body-parser');
const cors = require('cors');
const port = 80085;
const app = express();
const token = 'impossiblylongimportanttokenhere';
let nextId = 7;
您需要导入 CORS、解析器、Express 以用于路由目的。假设您将拥有一个登录名,您将需要一个身份验证器功能。请注意,这只是为了开发。
function authenticator(req, res, next) {
const { authorization } = req.headers;
if (authorization === token) {
next();
} else {
res.status(403).json({ error: 'User must be logged in to do that.' });
}
}
完成开发后,您可能希望将其替换为更安全的东西。使用app作为我们的路由器 express 有几种 CORS 方法可以让我们开始使用,如 postget
如果我们有一个名为friends 的数组并且我们想通过ID 找到那个朋友,下面是一个例子。
app.get('/api/friends/:id', authenticator, (req, res) => {
const friend = friends.find(f => f.id == req.params.id);
if (friend) {
res.status(200).json(friend);
} else {
res.status(404).send({ msg: 'Friend not found' });
}
});
最好的部分是 express 有一个名为 listen 的方法,只要我们在与 server.js 位于相同文件位置的 cli 上点击 NPM RUN 就会启动该方法。确保指定您的系统尚未使用的端口
app.listen(port, () => {
console.log(`server listening on port ${port}`);
});
问题 2 为了连接到我们这边的 Server.js,您需要使用 axios 进行 GET/POST 等调用,以调用您在上面示例中的 server.js 中创建的任何路由
.post('/api/friends', this.state.addFriend)
最重要的是您需要运行多个终端,以便后端和前端同时运行。首先从后端开始。
推荐阅读
- mysql - 如何将表格数据保存到数据库中
- javascript - 获取 API 未发布到 Node.js 服务器(正文为空)
- azure-data-explorer - 如何跨行对整数数组求和
- joomla - 呈现具有多个标题的条目的可搜索/可排序数据列表的最佳方法是什么?
- java - 如何定义一个通用参数 Class[] 并在 restTemplateBuilder.getForObject() 上使用它?
- c# - 通过 http 接收数据时唤醒现代备用计算机
- python - 创建多个按钮,但程序会卡在一个步骤中
- bash - Terminal Bash 将特定扩展名移动到文件夹并保留重复项
- javascript - cookie过期时如何删除数据库文档
- c - 分配缓冲区/字符串