html - node.js为啥抓取不了前端传过来的数据?
问题描述
用node.js抓取不了前端表单的数据,哭哭哭这是node.js代码
var http=require('http');var url=require('url');var dns=require('dns');var fs=require('fs');var querystring=require('querystring');var postdata='';http.createServer(function(req,res){ req.setEncoding('utf8'); //var readPath=dirname+'/'+url.parse(’a.html’).pathname; var pathname=url.parse(req.url).pathname; if(pathname==='/'){res.writeHead(200,{’Content-Type’:’text/html’});var indexpage=fs.readFileSync('a.html'); //console.log(indexpage); res.end(indexpage); } if(pathname==='/about'){res.writeHead(200,{’Content-Type’:’text/plain’});req.addListener('data',function(chunk){ if(chunk){postdata+=chunk; console.log(chunk); }elseconsole.log('no data emit')}); req.addListener('end',function(postdata){var a=querystring.parse(postdata);console.log(postdata)console.log(a);res.end(a.text); });}console.log('Server has been running on port 3000'); }).listen('3000','127.0.0.1');这是HTML代码<!DOCTYPE html><html><head><meta charset='utf-8'><meta name='author' content='sinson'></head><body><form action='/about' method='get'><input type='text' name='text'><input type='submit' value='提交'></form></body></html>
求大神指教
问题解答
回答1:你只处理了body部分的数据,然而前端的提交方法是get...建议去了解一下get和post的基本区别...
修改之后的app.js
var http = require('http');var url = require('url');var dns = require('dns');var fs = require('fs');var querystring = require('querystring');var postdata = '';http.createServer(function (req, res) { req.setEncoding('utf8'); // var readPath=dirname+'/'+url.parse(’a.html’).pathname; var pathname = url.parse(req.url).pathname; if (pathname === '/') { res.writeHead(200, { ’Content-Type’: ’text/html’ }); var indexpage = fs.readFileSync('a.html'); // console.log(indexpage); res.end(indexpage); } if (pathname === '/about') { res.writeHead(200, { ’Content-Type’: ’text/plain’ }); req.addListener('data', function (chunk) { if (chunk) {postdata += chunk;console.log(chunk); } elseconsole.log('no data emit'); }); req.addListener('end', function () { //去掉参数 var a = querystring.parse(postdata); console.log(postdata); console.log(a); res.end(a.text); }); }}).listen('3000', '127.0.0.1');console.log('Server has been running on port 3000');//提到外面比较好
a.html
<!DOCTYPE html><html><head><meta charset='utf-8'><meta name='author' content='sinson'></head><body><form action='/about' method='POST'> <!--改为POST--><input type='text' name='text'><input type='submit' value='提交'></form></body></html>
相关文章:
1. 点击页面就自动输入到mysql.求解2. java - IDEA从SVN检出项目 并在tomcat上运行 求详细流程3. node.js - nodejs使用formidable上传文件问题4. javascript - windos下第一次用Django无法正确创建工程目录5. node.js - 带有node_modules目录的项目,用phpstorm打开速度极慢,怎么解决?6. java - 多叉树求值,程序高手,算法高手看过来7. mysql索引的疑问8. 为什么我的switch自动输出了第一个case?9. 求教一个mysql建表分组索引问题10. android - 安卓做前端,PHP做后台服务器 有什么需要注意的?
