如果没有使用express(body-parser),怎么优雅地解析post数据。
我都说是没有使用express,怎么都叫我用。
nodejs更接近底层,所合http模块没有提供更高成的封装只是在listener里传入request,response参数供处理, express也是加入了中间件(body-parser)进行解析,当然如果有必要是可以自己实现中间层的
function(req,res){ yourselfConnect(req,res); }
express req.body.name
其实PHP的$_GET $_POST并不好,方便是方便,但是这种全局变量容易造成代码违反开放闭合原则,导致代码不好测试
我倒觉得req, res传来传去虽然麻烦点,但是代码结构会更好
@yeaha 你们三个回答的,都没有看问题的。我表示你们回答的不是我想要的
因为只有蠢蛋才会设计$POST $GET这种破坏模块化的东西
都用express了还不知道? post ,put 的数据在req.body 里 . get 的数据在req.query里。
@hezedu 我都写着是不使用express,你们怎么都没看到。 = =
@tulayang 不是很懂,它不是一个全局的函数而已吗?
没有 express 就手动解啊。node.js 内置的 http 库只做了很基础的工作而已。
@tulayang @coolicer 这种全局函数不是很不好吗?有了 $POST $GET,还要有 $REQUEST $SEND $HEADER 之类的,一起封进 connect 里面挺好的。
@coolicer 没看清,抱歉。 其实原生的也很简单。
var body=''; req.on('data',function(chunk){ body+=chunk; }); req.on('end',function(){ res.end(body); }));
可以接任何数据。不像express req.body只有json.
@hezedu 我也只找到这个,但是这个好像会出来问题。会无限增长?
@coolicer node跟php不同。php页面执行完变量全销毁。 node全局变量则不会。
@hezedu 我看到了,好像是加起来。
要想实现$_GET , $_POST 也不是不行,不过不能用中间件。 你需要把你网站都放在一个函数里。
@hezedu node全局变量在页面关闭后依然会存在是不是因为node是单线程的? 而php的线程在页面关闭后会被删除所以全局变量也会随之删除
@ycczkl php 不能常驻内存。没有像node式的全局变量。
不多说了,php早已放弃了。
这个问题跟问php中为何没有stream一个概念,不能带着php的思路来写nodejs,应该以web或者http协议本身来思考node是如何处理http请求的。 自豪地采用 CNodeJS ionic
@tulayang 逗B, 你设计一个高深的东西给我看看, 又狂妄, 又逗B, 你真是个多面体
@xujun52011
刺激到你的神经了, 在我眼里,写PHP的程序员:
的程序界的超级砖工。
这就是事实:只有菜鸟还在用PHP。
@tulayang
1, shell我是懂得不太多, 但是我懂strace, gdb等等工具 2, 确实不懂HTML, CSS, 只是懂documentFragment, selection, range 3, 确实不懂TCP协议那些, 也确实不懂HTTP, 只是懂为什么HTTP/1.1协议的body里面隔一段会有a0d2f3类似这样的东西, 但是用curl又看不到这些东西, 只是用PHP+PCNTL+LIBEVENT写了一个完整的HTTP SERVER
我确实是搬砖工, 只是年薪40W的搬砖工
我确实是菜鸟, 对于PHP来说也是菜鸟, 用C写PHP的扩展不太在行, 对于C来说也是菜鸟, 用C写不出好的PHP扩展, 对于JAVA来说也是菜鸟, JAVA真是一个庞大的东西, 现在还在学习Netty
语言只是小工具而已,精一门,其它的上手也简单。 难点在于设计与算法。
CNode 社区为国内最专业的 Node.js 开源技术社区,致力于 Node.js 的技术研究。
nodejs更接近底层,所合http模块没有提供更高成的封装只是在listener里传入request,response参数供处理, express也是加入了中间件(body-parser)进行解析,当然如果有必要是可以自己实现中间层的
express req.body.name
其实PHP的$_GET $_POST并不好,方便是方便,但是这种全局变量容易造成代码违反开放闭合原则,导致代码不好测试
我倒觉得req, res传来传去虽然麻烦点,但是代码结构会更好
@yeaha 你们三个回答的,都没有看问题的。我表示你们回答的不是我想要的
因为只有蠢蛋才会设计$POST $GET这种破坏模块化的东西
都用express了还不知道? post ,put 的数据在req.body 里 . get 的数据在req.query里。
@hezedu 我都写着是不使用express,你们怎么都没看到。 = =
@tulayang 不是很懂,它不是一个全局的函数而已吗?
没有 express 就手动解啊。node.js 内置的 http 库只做了很基础的工作而已。
@tulayang @coolicer 这种全局函数不是很不好吗?有了 $POST $GET,还要有 $REQUEST $SEND $HEADER 之类的,一起封进 connect 里面挺好的。
@coolicer 没看清,抱歉。 其实原生的也很简单。
可以接任何数据。不像express req.body只有json.
@hezedu 我也只找到这个,但是这个好像会出来问题。会无限增长?
@coolicer node跟php不同。php页面执行完变量全销毁。 node全局变量则不会。
@hezedu 我看到了,好像是加起来。
要想实现$_GET , $_POST 也不是不行,不过不能用中间件。 你需要把你网站都放在一个函数里。
@hezedu node全局变量在页面关闭后依然会存在是不是因为node是单线程的? 而php的线程在页面关闭后会被删除所以全局变量也会随之删除
@ycczkl php 不能常驻内存。没有像node式的全局变量。
不多说了,php早已放弃了。
这个问题跟问php中为何没有stream一个概念,不能带着php的思路来写nodejs,应该以web或者http协议本身来思考node是如何处理http请求的。 自豪地采用 CNodeJS ionic
@tulayang 逗B, 你设计一个高深的东西给我看看, 又狂妄, 又逗B, 你真是个多面体
@xujun52011
刺激到你的神经了, 在我眼里,写PHP的程序员:
的程序界的超级砖工。
这就是事实:只有菜鸟还在用PHP。
@tulayang
1, shell我是懂得不太多, 但是我懂strace, gdb等等工具 2, 确实不懂HTML, CSS, 只是懂documentFragment, selection, range 3, 确实不懂TCP协议那些, 也确实不懂HTTP, 只是懂为什么HTTP/1.1协议的body里面隔一段会有a0d2f3类似这样的东西, 但是用curl又看不到这些东西, 只是用PHP+PCNTL+LIBEVENT写了一个完整的HTTP SERVER
我确实是搬砖工, 只是年薪40W的搬砖工
我确实是菜鸟, 对于PHP来说也是菜鸟, 用C写PHP的扩展不太在行, 对于C来说也是菜鸟, 用C写不出好的PHP扩展, 对于JAVA来说也是菜鸟, JAVA真是一个庞大的东西, 现在还在学习Netty
语言只是小工具而已,精一门,其它的上手也简单。 难点在于设计与算法。