On Wed, Nov 26, 2014 at 2:29 PM, Matthias Dittrich <matthi.d@xxxxxxxxxxxxxx> wrote: > > On 26.11.2014 12:38, Mitchell Joblin wrote: > > On Tue, Nov 25, 2014 at 7:32 PM, Matthias Dittrich > <matthi.d@xxxxxxxxxxxxxx> wrote: > > On 25.11.2014 16:20, Mitchell Joblin wrote: > > On Mon, Nov 17, 2014 at 8:49 PM, Wolfgang Mauerer <wm@xxxxxxxxxxxxxxxx> > wrote: > > Am 17/11/2014 16:22, schrieb Matthias Dittrich: > > On 17.11.2014 16:10, Wolfgang Mauerer wrote: > > Am 17/10/2014 15:14, schrieb Matthias Dittrich: > > This change makes id_service.js compatible with the latest nodejs > versions. > > does "latest" version refer to development version, or the latest > released version? > > I have installed net-libs/nodejs 0.10.21 on my gentoo (which are normaly > quite up to date with their packages) machine, and that version needs > that change... > > ok, so it's required for a released version. > > Signed-off-by: Matthias Dittrich <matthi.d@xxxxxxxxx> > --- > README.md | 2 +- > id_service/id_service.js | 9 +++++---- > 2 files changed, 6 insertions(+), 5 deletions(-) > > diff --git a/README.md b/README.md > index 4574d23..277a67a 100644 > --- a/README.md > +++ b/README.md > @@ -155,7 +155,7 @@ See `bugextractor/INSTALL` for all java-related > details. > * The ID service requires a few node.js packages. Install them by > running > - npm install addressparser express js-yaml mysql > + npm install addressparser express js-yaml mysql body-parser > in the `id_service` directory. > diff --git a/id_service/id_service.js b/id_service/id_service.js > index 2bb5afe..48bc7c1 100644 > --- a/id_service/id_service.js > +++ b/id_service/id_service.js > @@ -21,6 +21,7 @@ var mysql = require('mysql'); > var yaml = require("js-yaml"); > var logger = require('./logger'); > var addressparser = require("addressparser"); > +var bodyParser = require('body-parser'); > // get property file name > var fileName = process.argv[2]; > @@ -63,10 +64,10 @@ var db_config = { > }; > var pool = mysql.createPool(db_config) > -app.configure(function() { > - // used to parse JSON object given in the body request > - app.use(express.bodyParser()); > -}); > +var env = process.env.NODE_ENV || 'development'; > > ... here it seems you're referring to the development version. > > https://github.com/strongloop/express/wiki/Migrating-from-3.x-to-4.x > > But I suppose we will need body-parser when this version becomes > a release? If yes, is there maybe a way to use something like > a node.js version number? > > I'm not really into nodejs and how they handle releases, sorry. > I can just say that I needed those changes because the old code would > fail and I saw that this is the recommended change to do. > If you don't need different environments I think it's fine to remove > that if clause and keep the app.use call. > > We did not distinguish between development and production > environments before. Even if we distinguished between development > and production environment, why would it help to call the bodyParser() > constructor only during development? > > Best regards, Wolfgang > > +if ('development' == env) { > + app.use(bodyParser()); > > At least according to > > http://stackoverflow.com/questions/24330014/bodyparser-is-deprecated-express-4, > this call has been deprecated > for many years. The github site you mention does also not say > that you need to call bodyParser(). Can you please make sure > a) why we need bodyParser(), and b) how it's used correctly, if we > need it? Thanks! > > @Matthias, what's the status of this? I have merged your latest branch > (locally) and am testing it out. When I start the id service I get the > following > > Starting REST Service with logging level "info" > info: Connecting to MySQL at codeface@localhost database codeface > body-parser deprecated undefined extended: provide extended option > id_service.js:68:20 > > --Mitchell > > I do not see this on my system and I have no idea what that means. Is it at > least working? > > It does not have any visible failures at this point. You added > body-parser in one of you commits and it looks like one of the calls > is already deprecated. > > No I did not add anything at all, codeface used bodyparser before. It's just > that nodejs moved bodyparser out of their core distribution (if I understood > that right). That is the reason why the previous code will not work on newer > nodejs versions. Than I changed the code again in the latest rebase because, > calling bodyparser() was deprecated (again I did not add anything!). On your latest pull request there is a commit titled "Upgrade to latest nodejs changes" and there is 4 deleted and 2 added lines to the id_services.js file. This is the change I am talking about. Are you saying this patch is not the right one? If so then please update the pull request. --Mitchell > > See > http://stackoverflow.com/questions/24330014/bodyparser-is-deprecated-express-4 > If you want you can try and change the code to > > app.use(bodyParser.urlencoded({ > extended: true > })); > > Can you test that code as I have no warnings on my system? If it works could > you commit it on top of my changes, push it to github and send me the hash. > This way I could cherry-pick the commit and sqash it in (if you want it that > way; maybe even keep the separate commit?). > > It seems like they don't know what they want to do and deprecate things all > the time, but at least it will now work on newer nodejs versions... > I hope we can now just get over this change that doesn't actually do > anything besides trying to make things work again :). > > --Matthias > > --Mitchell > > --Matthias > > Best regards, Wolfgang > > +} > /** > * Obtain a connection from the pool, check if it works, and then > execute > > >