[英]Using Variable In JSON node.js
我正在编写一些代码,允许我使用HTTP和Express从两个节点实例来回发送消息。
每个客户端生成UUID类型的标识,然后将其发送到主服务器以进行存储和身份验证。
这是客户端,您可以在底部看到它生成了我认为是json字符串的东西,我在包含ID之前分配一个变量,我试图使用此ID发送到服务器进行处理。
Client.js
var request = require('request');
var sendservlet = request.post;
var fs = require('fs');
var path = require('path');
var crypto = require('crypto');
if (fs.existsSync('foo.txt')) {
console.log('Found ');
fs.readFile('foo.txt', "utf-8" , function (err, data) {
if (err) throw err;
console.log(data);
});
} else {
console.log("Did not find file, i must first register you to the server.");
function randomValueHex (len) {
return crypto.randomBytes(Math.ceil(len/2))
.toString('hex')
.slice(0,len);
}
var ID = randomValueHex(7)
console.log("Your New Identification Number Is: " + ID);
sendservlet(
'http://192.168.1.225:3000',
{ form: { key: ID } },
function (error, response, body) {
if (!error && response.statusCode == 200) {
console.log(body)
console.log(ID)
}
}
);
}
Server.JS
var express = require('express');
var bodyParser = require('body-parser')
var app = express();
app.use(bodyParser.urlencoded({ extended: false }));
var crypto = require('crypto');
app.post('/', function (req, res) {
res.send('POST request to the homepage');
console.log(req.body.form.key);
});
var server = app.listen(3000, function () {
var host = server.address().address;
var port = server.address().port;
console.log('Example app listening at http://%s:%s', host, port);
});
服务器似乎无法读取它,我相信我无法像这样调用变量。
为了帮助缩小这个问题,我严格要求为什么不能传输ID变量
sendservlet(
'http://192.168.1.225:3000',
{ form: { key: ID } },
非常感谢您提供任何建议!
而不是console.log(req.body.form.key);
,你只需要console.log(req.body.key);
form
键正是request
用于(基本上)“这是我的表单数据,所以这是POST到URL的东西。” 无论在request
方面的form
是什么,只需在express
方面进入req.body
。 所以你想要req.body.key
。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.