在 Linux 系统上使用 Node.js 处理跨域请求,通常会用到 Express 框架和 CORS(跨源资源共享)中间件。下面是详细的步骤和示例代码:
首先,确保你已经安装了 Node.js 和 npm。然后,在你的项目目录中安装 Express 和 CORS:
npm install express cors
创建一个名为 app.js
的文件,并添加以下代码:
const express = require('express');
const cors = require('cors');
const app = express();
const port = 3000;
// 使用 CORS 中间件
app.use(cors());
// 示例路由
app.get('/', (req, res) => {
res.send('Hello World!');
});
app.listen(port, () => {
console.log(`Server is running on http://localhost:${port}`);
});
在终端中运行以下命令来启动你的 Express 应用:
node app.js
你可以使用浏览器或者 Postman 来测试跨域请求。例如,使用浏览器访问 http://localhost:3000
,你应该会看到 “Hello World!” 的响应。
如果你需要更细粒度的控制 CORS 设置,可以传递一个配置对象给 cors()
中间件。例如:
const corsOptions = {
origin: 'http://example.com', // 只允许来自 example.com 的请求
methods: 'GET,POST,PUT,DELETE', // 允许的 HTTP 方法
allowedHeaders: 'Content-Type,Authorization' // 允许的请求头
};
app.use(cors(corsOptions));
对于某些跨域请求(例如,使用自定义头或非简单方法的请求),浏览器会发送一个预检请求(OPTIONS 请求)。你需要确保你的服务器能够正确处理这些预检请求。
app.options('*', cors(corsOptions)); // 对所有路由启用预检请求处理
如果你需要将你的应用部署到 Linux 服务器上,可以使用 PM2 或其他进程管理工具来管理你的 Node.js 应用。例如,使用 PM2:
npm install pm2 -g
pm2 start app.js --name my-app
这样,你的应用就会在 Linux 服务器上运行,并且能够处理跨域请求。
通过以上步骤,你可以在 Linux 系统上使用 Node.js 和 Express 处理跨域请求。