2014-02-13 110 views
0

不知何故,我无法将数据从Backbone模型发送到NodeJS服务。
骨干示范Backbone客户端向NodeJS服务发送请求

var Money = Backbone.Model.extend({ 
    url: 'http://localhost:3000/sendCoins', 
    defaults: { 
     fromAddress: "", 
     toAddress: "", 
     amount: "" 
    }, 
    transferMoney: function(req, resp) { 
     //get field values 
     console.log(req.fromAddress); //prints fine 
     this.save(); 
    } 
}); 

var transferMoney = new Money(); 

节点JS服务

var app = express(); 
    app.listen(3000); 
    app.use(express.json()); 

app.use(function (req, res, next) { 

    // Website you wish to allow to connect 
    res.setHeader('Access-Control-Allow-Origin', '*'); 

    // Request methods you wish to allow 
    res.setHeader('Access-Control-Allow-Methods', 'GET, POST, OPTIONS, PUT, PATCH, DELETE'); 

    // Request headers you wish to allow 
    res.setHeader('Access-Control-Allow-Headers', 'X-Requested-With,content-type'); 

    // Set to true if you need the website to include cookies in the requests sent 
    // to the API (e.g. in case you use sessions) 
    res.setHeader('Access-Control-Allow-Credentials', true); 

    // Pass to next layer of middleware 
    next(); 
}); 


app.post('/sendCoins', function(req, res) { 
    console.log(req.body.toAddress); 
    console.log(JSON.stringify(req.body)); 
    console.log(req.body.amount); 
}); 

当我从后视骨干打印console.log(JSON.stringify(req.body));{"fromAddress":"","toAddress":"","amount":""}要求。

+1

你的骨干机型是空的,它发送您提供的默认值,我不明白什么是不为你工作。 – jsantell

+0

我想你不是使用express.bodyParser() –

回答

0

正如M Omary所提到的,您需要使用body parser才能访问req.body。添加以下代码上面app.post,看看它的工作原理:

app.use(express.bodyParser()); 
相关问题