我仍然是Node.js的初学者,我正尽力探索。
我知道Express.js是很多人用来在Node.js中创建网站的框架。
但是没有使用Express.js,我知道可以使用'fs.readFile'读取.html文件,然后在浏览器中“显示”这个.html文件。
有没有办法让用户输入(比如按一下按钮,或填写一个方框)从这个网页进入Node.js?到目前为止,我还没有找到任何这方面的例子。
答案 0 :(得分:2)
是的,这是可能的。研究connect bodyParser's urlencoded function works。
的方式当请求从浏览器进入时,节点将把它表示为可读数据流。对于Web表单,模式将是:
data
和end
事件将流中的数据块缓冲到单个字符串中。
var qs = require('qs'); //https://github.com/visionmedia/node-querystring
function handle(req, res) {
var buf = '';
req.setEncoding('utf8');
req.on('data', function(chunk){
//assemble the request from distinct chunks into a single string
buf += chunk
});
req.on('end', function(){
//OK, you have a usable string request body, parse it and handle it
try {
var formData = qs.parse(buf);
//Yay, it parsed. Now you have your form data
//depending on your form's html, you might have formData.email, for example
} catch (err){
//oops, respond with an error
}
});
}
答案 1 :(得分:1)
长话短说:
http.createServer(function (req, res) {
var data = '';
req.on('data', function(chunk) {
console.log("Received body data:");
console.log(chunk);
data += chunk.toString();
});
req.on('end', function() {
console.log('Received Data: ', data);
res.end();
});
}