Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

How to get rid of Connect 3.0 deprecation alert?

I'm a node.js developer who creates web apps using express.js. By now, my problem is:

Whenever I create an app on my computer, npm install its stuff and run it (with node app.js and nodemon) I get this message in the console:

connect.multipart() will be removed in connect 3.0
visit https://github.com/senchalabs/connect/wiki/Connect-3.0 for alternatives
connect.limit() will be removed in connect 3.0
Express server listening on port 3000

The app works, that's fine. But when I clone an app created in other computer I don't get that message, so I'm supposing I have something outdated in my computer.

I went to the site mentioned in the message and confirmed my speculations. That is a deprecation warning. However, I've updated node and npm and globally express but I still getting the note.

My problem is, therefore: I don't know what do I need to update in order to get rid of the deprecation notes because they're freaking me out.

I hope someone can help me. Thanks a lot.

like image 692
Amet Alvirde Avatar asked Oct 25 '13 04:10

Amet Alvirde


3 Answers

This is a warning that will go away once Express updates to use Connect 3.0 - as a temporary fix, follow the instructions at the top of https://github.com/senchalabs/connect/wiki/Connect-3.0. Specifically, find this line in your app:

app.use(express.bodyParser());

And replace it with the following (this is what bodyParser will be in 3.0):

app.use(express.json());
app.use(express.urlencoded());
like image 155
Jacob Gillespie Avatar answered Nov 14 '22 00:11

Jacob Gillespie


i'm responsible for this deprecation notice. did you read the wiki? https://github.com/senchalabs/connect/wiki/Connect-3.0

step 1: use each parser directly instead of app.use(express.bodyParser());

app.use(express.json());
app.use(express.urlencoded());

step 2: use a different multipart parser, for e.g: connect-multiparty can be used

app.use(require('connect-multiparty')())

work on connect 3 and express 4 hasn't begun yet because node 0.12 is taking a while to be released. there's nothing to update, yet.

like image 39
Jonathan Ong Avatar answered Nov 14 '22 01:11

Jonathan Ong


since express is just a wrapper to connect, i suggest using connect directly.

so instead of: app.use(express.bodyParser());

use:

connect = require('connect');
app.use(connect.json());
app.use(connect.urlencoded());
like image 1
Sagiv Ofek Avatar answered Nov 13 '22 23:11

Sagiv Ofek