我有一个小项目,允许用户上传实时数据。由于我是一名PHP开发人员,我发现很难使用Node.js和 Socket.io。我所做的是,我使用 PHP 作为我的应用程序的主要后端。它是将从用户接收数据并将其保存到数据库的人。用户提交数据后,PHP 会将数据发送到节点.js应用程序,该应用程序将通过 socket.io 向所有连接的用户发送。但是我该怎么做呢?我的意思是节点将如何.js没有新数据?我希望PHP将数据(通过POST)发送到Nodejs,然后 socket.io 会广播它。
我找不到任何工作示例。顺便说一句,PHP 将发送到 Node.js 的数据将以 JSON 形式出现。有人在这里问:NodeJS从PHP服务器接收数据,但我无法理解它是如何工作的。
下面是
一个简单的 Node.js 应用程序,它创建了一个 REST api,您可以将 JSON 发布到:
应用.js:
var express = require('express');
var bodyParser = require('body-parser');
var app = express();
app.use(bodyParser.urlencoded({ extended: true}));
app.use(bodyParser.json());
app.use(bodyParser.json({type: 'application/vnd.api+json'}));
var router = express.Router();
function dataHandler(req, res) {
// the 'body' variable will contain the json you've POSTed:
var body = req.body;
// your socket.io logic would go around here.
console.log(body.message);
res.send("ok");
}
router.route('/receive')
.post(dataHandler);
app.use('/api', router);
app.listen(3000, function() {
console.log('Express started at port 3000');
});
package.json:
{
"name": "node-test",
"descirption": "Node test",
"version": "0.0.1",
"private": true,
"dependencies": {
"body-parser": "^1.10.0",
"express": "^4.4.3"
}
}
要使其正常工作,请按照以下步骤操作(假设您在此处安装了 Node):
- 创建一个新目录,并在其中创建上述两个文件
- 运行
npm install
。 这将读取package.json
并安装所需的依赖项 - 运行
node app.js
使用 POST
http://localhost:3000/api/receive
以下 JSON 消息发送到 URL:{ "消息": "你好世界"}
检查运行node app.js
的控制台输出。 它应该记录"Hello world"消息。
您正在创建的是一个简单的 REST API。要了解有关如何使用 Node 执行 REST API 的更多信息.js并了解我发布的示例应用程序中发生了什么,您可以谷歌"Node.js rest api 教程"。您通常必须挑选您阅读的内容,因为一些教程将解释如何设置数据库等。下面是一个介绍上面示例中大部分操作的内容。