2017-02-14 113 views
0

使用Iam
https://github.com/peteward44/node-svn-ultimate
而且它不是用Promises開發的。但我想從NodeJs服務器向客戶端發送成功或錯誤結果。
通常它會這樣發送操作/自己創建的響應來自服務器的客戶端

// Client -> AngularJs Request 
    svn() 
    { 
     this.$http.post(...) 
     .then(res => { 
      console.log(res); 
     },err=>{ 
      console.log(err); 
     }); 
    } 
**Server** 
// index.js 
'use strict'; 

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

router.post('/svn', controller.svn);//the route to use 

module.exports = router;  


//controller.js 
function respondWithResult(res, statusCode) {//respond to client 
    statusCode = statusCode || 200; 
    return function(entity) { 
    if (entity) { 
     res.status(statusCode).json(entity); 
    } 
    }; 
} 
... 
export function svn(req, res) { 
     return DB.find({...})//Sequelize Query 
    })//returning res as promise 
    .then(res => { 
     svnUltimate.commands.commit(..., (err, success) => { 
        if (err) { 
        console.log('commit error') 
        console.log(err) 
        } else { 
        console.log(success); 
       }) 
     return res; 
     }) 
    }) 
    .then(respondWithResult(res)) 
    .catch(handleError(res)); 
} 

它現在響應數據庫查詢的結果,但我想它對應措施SVN結果的。

svnUltimate.commands.commit(..., (err, success) => { 
         if (err) { 
         res=err; 
         } else { 
         //res=success;// answer was still the DB query 
         //return success; // no output 
         //res.status(404).send('crazy');// is no function 
         //res.status = 404 //no output 
         // res.writeHeader()// no function 
         }) 
      return res; 
      }) 

試了幾件事情我怎麼能以響應客戶端與SVN命令結果的結果?
修改Sequelize的res
寫下自己的迴應?
還是有承諾的SVN包?

只使用 6.9.5的NodeJS
快車4.0
Sequelize 3.28

回答

0

要返回我用下面的方法的數據。

res.status = 200; 
res.json({myData: "example"); 

如果你想送東西這樣的錯誤:

res.status = 400; 
res.JSON({message: "error. Invalid request"}) 

你需要決定你會從你的Web服務器返回什麼類型的數據。上面的例子使用JSON,最適合JavaScript棧。

相關問題