2017-11-10 4 views
-2

Ich habe diesen Knoten js Programm, das Variable in der Konsole gefragt zurückgeben sollte, aber es kehrt hier ist nicht definiert Code und die Eingabe Ich habe versucht, zu analysieren: -Knoten js gibt kein korrektes Ergebnis zurück?

router.post('/createorder',function(req,res){ 
    console.log(req.body.ProductName); 

    // var obj=JSON.parse(req.body); 
    res.send(req.body); 
}); 

der Eingang:

{ 
    "ProductName":"Wine", 
    "ProductPrice":"500", 
    "ProductQuantity":"2", 
    "ProductCost":"1000", 
    "SellerId":"2" 
} 

und hier ist das Hauptmodul i

bin mit
var express= require('express'); 
var routes=require('./routes/api'); 
var bodyparser=require('body-parser'); 
var mysql = require('mysql'); 

var db=mysql.createConnection({ 
    host:'localhost', 
    user:'root', 
    password:'', 
    database:'nodemysql' 
}) 
//setting up express 
var app = express(); 
app.use(bodyparser.urlencoded({extended:false})); 
app.use(bodyparser.json()); 

app.use(routes); 

//listen for requests 
/*app.get('/',function(req,res){ 
    console.log('get trial method called'); 
    res.send({name:'Atul'}); 
});*/ 
app.listen(3000,function(){ 
    console.log('server started on port 3000 '); 
}); 

i ein bestimmtes Objekt, um in der Datenbank zu speichern, um acess wollen?

+0

Sie verwenden höchstwahrscheinlich nicht die Middleware bodyParser. – soueuls

+0

Es ist nicht zwingend erforderlich, die bodyParser Middleware zu verwenden, aber es wäre nützlich, den Rest des Codes zu sehen, um ihn besser zu verstehen. – Ted

+0

ich benutze es im Hauptmodul, aber nicht in Routen Modul verursacht das Problem? –

Antwort

0

Wie in den Kommentaren erwähnt, müssen Sie sicherstellen, Express kann den Körper der Anfrage analysieren, da dies nicht standardmäßig tun. Angenommen, Sie verwenden ein Express-Framework. Du könntest so etwas haben.

Jetzt können Sie den Körper lesen.

Wenn Sie Ihr req-Objekt vor dem Hinzufügen des obigen Codes mit der Konsole anmelden, wird die body -Eigenschaft nicht angezeigt.

UPDATE

das ist, was ich in meinem app.js haben

var express = require('express'); 
var path = require('path'); 
var favicon = require('serve-favicon'); 
var logger = require('morgan'); 
var cookieParser = require('cookie-parser'); 
var bodyParser = require('body-parser'); 

var index = require('./routes/index'); 


var app = express(); 

// view engine setup 
app.set('views', path.join(__dirname, 'views')); 
app.set('view engine', 'jade'); 

// uncomment after placing your favicon in /public 
//app.use(favicon(path.join(__dirname, 'public', 'favicon.ico'))); 
app.use(logger('dev')); 
app.use(bodyParser.json()); 
app.use(bodyParser.urlencoded({ extended: false })); 
app.use(cookieParser()); 
app.use(express.static(path.join(__dirname, 'public'))); 

app.use('/', index); 


// catch 404 and forward to error handler 
app.use(function(req, res, next) { 
    var err = new Error('Not Found'); 
    err.status = 404; 
    next(err); 
}); 

// error handler 
app.use(function(err, req, res, next) { 
    // set locals, only providing error in development 
    res.locals.message = err.message; 
    res.locals.error = req.app.get('env') === 'development' ? err : {}; 

    // render the error page 
    res.status(err.status || 500); 
    res.render('error'); 
}); 

module.exports = app; 

In meiner Routen/index.js Datei Ich habe folgendes

var express = require('express'); 
var router = express.Router(); 

router.post('/createorder',function(req,res){ 
    console.log(req.body); 

    // var obj=JSON.parse(req.body); 
    res.send(req.body); 
}); 

module.exports = router; 

Getestet habe ich diese mit Postbote App und es funktioniert.

+0

Ich habe getan, was Sie vorgeschlagen haben, aber immer noch bekomme ich das gleiche Ergebnis –

+0

Könnten Sie bitte zeigen Sie uns Ihren Code, ich werde glücklich sein, Ihnen zu helfen, bis Sie es funktioniert :). Benutzt du Express? – Freddie

+0

Bitte überprüfen Sie den Code jetzt –

Verwandte Themen