关于express4不再支持body-parser

express的bodyParser能将表单里的数据格式化,bodyParser原是绑定在express中的,但从express4开始,不在绑定了

如果依然直接使用app.use(express.bodyParser()),会出现如下错误

出现这个问题是因为你安装的是express4,而bodyParser是绑定在 Express 2 or 3中的。

如果仍想使用,可以npm install [email protected]。

或者也可以:

1. Install body-parser via ‘npm install body-parser‘
2. Include module by ‘var bodyParser = require(‘body-parser‘);‘
3. Add ‘app.use(bodyParser());‘

这次服务run起来了,但会出现警告

这次是因为 using bodyParser() on it‘s own has been deprecated

也就是说

app.use(bodyParser()); //Now deprecated

你需要这样用

app.use(bodyParser.urlencoded());

app.use(bodyParser.json());

OK,但是依然有一个警告

app.use(bodyParser.urlencoded())改成:
app.use(bodyParser.urlencoded({
  extended: true
}));终于没有警告了。。。

参考:https://github.com/martindale/snarl/issues/51      http://stackoverflow.com/questions/24330014/bodyparser-is-deprecated-express-4
 
时间: 2024-10-10 04:10:17

关于express4不再支持body-parser的相关文章

html5中不再支持table的cellspacing和cellpadding属性

如果你现在开始用html5的声明来写页面时,你会发现在定义table的cellspacing和cellpadding时被提示该属性已过时或者提示非法属性.具体原因是在html5中table标签的这两个属性已经被移除,需要定义边框之类的时应该使用css的写法. 具体实现如下: <!DOCTYPE html> <html xmlns="http://www.w3.org/1999/xhtml"> <head> <title>Html5 Tab

html5中不再支持的元素

html5中不再支持的元素:1.acronym(建议abbr) : 定义首字母缩写2.applet(建议object): 定义 applet3.basefont(使用css控制)4.big(使用css控制) :定义大号文本5.center(使用css控制): 定义居中的文本6.font(使用css控制)7.strike(使用del) :定义加删除线的文本8.tt(使用css控制): 定义打字机文本.9.u(使用css控制) :定义下划线文本10.frame(建议iframe): 定义子窗口(框架

ruby on rails 2.3+的版本不再支持cgi

ruby on rails 2.3+的版本不再支持cgi了,恶心到了,换其他框架,看了款cramp,完全没资料,完全不让人入门 操蛋的厉害,ruby果然是小众的窝里乐,放弃使用 ruby on rails 2.3+的版本不再支持cgi,布布扣,bubuko.com

谷歌浏览器Chrome不再支持showModalDialog的解决办法

问题重现 弹出窗口编码: JavaScript 0 1 2 3 4 5 6 7 var obj = new Object(); var retval = window.showModalDialog("request.aspx",obj,"dialogWidth=500px;dialogHeight=300px"); if (retval == null) { ... }else { ... } 浏览器异常: Shell 0 1 Uncaught TypeError

公众平台调整SSL安全策略 不再支持SSLv2、SSLv3版本

昨天夜间,微信团队发布重要安全策略调整,将关闭掉SSLv2.SSLv3版本支持,不再支持部分使用SSLv2. SSLv3或更低版本的客户端调用.请仍在使用这些版本的开发者于11月30日前尽快修复升级. 近一段时间HTTPS加密协议SSL曝出高危漏洞,可能导致网络中传输的数据被黑客监听,对用户信息.网络账号密码等安全构成威胁.为保证用户信息以及通信安全,微信公众平台将关闭掉SSLv2.SSLv3版本支持,不再支持部分使用SSLv2. SSLv3或更低版本的客户端调用.请仍在使用这些版本的开发者于1

x86平台转x64平台关于内联汇编不再支持的解决

x86平台转x64平台关于内联汇编不再支持的解决     2011/08/25   把自己碰到的问题以及解决方法给记录下来,留着备用!   工具:VS2005  编译器:cl.exe(X86 C/C++)  ml64.exe(X64 ASM64) 前提:X86下内联汇编是嵌在函数当中实现的 在X86平台下,可以轻松的在C/C++代码中嵌入汇编代码,称其为"内联汇编",使用"__asm{}"语法即可,比较简单,这里不做介绍.当你在X86平台下,由于性能和速度的要求,需

chrome从版本55开始,不再支持设置网页内容编码

Hi Everyone, Chrome 55 has removed the Encoding menu and Chrome will do auto-encoding detection now: https://bugs.chromium.org/p/chromium/issues/detail?id=597488  -  Remove encoding menu Manual encoding selection is not necessary any more as the new

Appium新版本不再支持ByName定位了怎么办

appium版本在1.5以后就不再支持ByName的定位,本文章仅介绍在appium1.6.3/1.6.4/1.6.5版本下如何支持ByName定位,适用于安卓.在使用appium1.5之后的版本时,你一定见过这个错误 org.openqa.selenium.InvalidSelectorException: Locator Strategy 'name' is not supported for this session 是否很心痛,曾经的定位神器居然ByName居然不再支持了,那我以前的脚本

Google Chrome 72 丢弃HPKP,不再支持TLS1.0和TLS1.1!

Mozilla发布Firefox 65 几个小时后,谷歌也发布了最新的Chrome 72,并为Windows.Mac.Linux和Android用户提供了更新的版本. 注:谷歌Chrome增加了下载驱动保护功能. 虽然在过去的3-4个版本中,谷歌在Chrome UI和UX(用户界面和用户交互)方面的变化已经给用户带来了很大的影响,但是如今的版本变化对浏览器的底层Web APIs和协议的影响更大. 在所有的变化中,Chrome 72有三个重要的更新是用户需要知道的.其中最重要的是完全删除对基于HT