2015-09-17 14 views
6

Tôi đang làm việc trên ứng dụng sử dụng nút , express, mysql ở phía máy chủ. tôi đã viết các API máy chủ trên tệp server.js và khi tôi đang cố gắng truy cập những người sử dụng Postman thì req.body luôn không xác định.req.body undefined ở phía máy chủ

đây là cấu hình server.js của tôi.

var express = require('express'); 
var mysql = require('mysql'); 
var cors = require('cors'); 
var bodyParser = require('body-parser'); 
var wrench = require("wrench"); 
var fs = require('fs'); 
var path = require("path"); 
var mkdirp = require('mkdirp'); 
var walk = require('walk'); 
var fse = require('fs-extra'); 
var multipart = require('connect-multiparty'); 
var multipartMiddleware = multipart(); 
var crypto = require('crypto'); 

app.use(cors()); 

app.use(bodyParser.urlencoded({limit: '50mb',extended: false})); 
app.use(bodyParser.json({limit: '50mb'})); 

var connection = mysql.createConnection({ 
    host: 'localhost', 
    user: 'root', 
    password: 'pass', 
    database: 'dbname' 
}); 


connection.connect(function(err) { 
    if (!err) { 
     console.log("Database is connected ... \n\n"); 
    } else { 
     console.log("Error connecting database ... \n\n"); 
    } 
}); 

app.post('/urlreq', function(req, res){ 
    console.log(req.body); 
} 
app.listen(3000, function(){ 
    console.log("Rest Demo Listening on port 3000"); 
}); 

Khi tôi đang cố gắng gửi nội dung nào đó trong nội dung trong Postman, sau đó req.body sắp hết trống ở phía máy chủ.

+1

Are bạn gửi yêu cầu 'multipart/form-data'? Nếu vậy, nó không hoạt động vì 'bodyparser' không xử lý kiểu dữ liệu này – Curious

+1

Typo trong' app.listem' đổi nó thành 'app.listen' – GuyT

+0

@ Tò mò tôi không dùng multipart cho biểu mẫu dữ liệu chỉ cần gửi biểu mẫu dữ liệu làm đối tượng. – ashishkumar148

Trả lời

3

Nếu bạn đang gửi multipart/form-data, nó không hoạt động vì bodyparser không xử lý kiểu cơ thể này.

Trong trường hợp này thêm dòng sau nên sửa chữa nó:

app.use(multipartMiddleware); 

Mẫu các docs:

multipart/form-data là mặc định mã hóa một mẫu web sử dụng để truyền dữ liệu

+0

cảm ơn bạn! nó đã giải quyết được vấn đề. – ashishkumar148

0

Bạn cũng có thể sử dụng làm phần mềm trung gian. Ngoài ra nghe trên một cổng. thêm dòng sau trong mã của bạn -

var app = express(); 

app.use(function(req, res, next) {  
    console.log('Current User:', req.body); 
    next(); 
}); 

app.post('/url', function(req,res){ 
    console.log(req.body) 
}); 


app.listen(3000, function(){ 
    console.log('Express server listening on port 3000'); 
}); 
+0

Vâng, nhưng vẫn giống như prob. đang đến. – ashishkumar148

0

Hãy thử add:

var express = require('express'); 
var app = express(); 
[...] 

// Last stack 
app.listen(3000, function(){ 
    console.log("Rest Demo Listening on port 3000"); 
}); 
+0

vẫn giống như prob. – ashishkumar148

Các vấn đề liên quan