2017-07-31 62 views
0

我需要創建一個僅用於公開REST API的NodeJS應用程序。當我使用Express生成器express myNodeApp創建ExpressJS項目時,它會創建一個默認查看.jade文件的項目。如何創建沒有視圖的NodeJS應用程序?只有NodeJS REST API

我可以創建並運行沒有視圖的NodeJS項目嗎?我的NodeJS項目將公開另一個客戶端應用程序將使用的REST服務。因此我的NodeJS項目不需要任何UI元素。還有什麼package.json.bin/www文件將具有。我將在Azure雲中託管我的NodeJS項目,並且我的客戶端應用程序將使用來自雲的暴露服務。

回答

0

你可以用快遞做到這一點 - 見下文

安裝快遞和身體的解析器,隨意使用下面

var express = require('express'); 
var app = express(); 
var bodyParser = require('body-parser'); 

module.exports = { 
    init: function(module_Enabled){ 
     var portnum = 1234; process.env.NODE_TLS_REJECT_UNAUTHORIZED = "0"; 

     var allowCrossDomain = function(req,÷ res, next) { 
      res.header('Access-Control-Allow-Origin', '*'); 
      res.header('Access-Control-Allow-Methods', 'GET,PUT,POST,DELETE,OPTIONS'); 
      res.header('Access-Control-Allow-Headers', 'Content-Type, Authorization, Content-Length, X-Requested-With'); 

      // intercept OPTIONS method 
      if ('OPTIONS' == req.method) { 
       res.send(200); 
      } else { 
       next(); 
      } 
     }; 
     app.use(bodyParser.urlencoded({ 
      extended: false 
     })); 
     app.use(bodyParser.json()); 
     app.use(allowCrossDomain); 
     var server = app.listen(portnum, function() { 
      var host = server.address().address; 
      var port = server.address().port; 
      console.log("Content Provider Service listening at http://%s:%s", host, port); 
     }); 
     app.get('/', function(req, res) { 
      res.send('data'); 
     }); 
    } 
} 
+0

感謝您的更正;) –

+0

我試過但在我的app.js中複製了這個模塊,並且在執行「npm start」時,它會調用bin/www並引發連續的錯誤。最初端口設置錯誤。解決它會引發偵聽器錯誤。我使用Express生成器應用程序。 – Joseph

1

模塊舉一個例子看到代碼在這個答案:

聖翻錄所有不必要的代碼,這將是基本上是:

const express = require('express'); 
const bodyParser = require('body-parser'); 

const app = express(); 
app.use(bodyParser.json()); 

app.post('/email', (req, res) => { 
    console.log(req.body.address); 
    res.json({ ok: true }); 
}); 

app.listen(4443,() => console.log('Listening on http://localhost:4443/')); 

此代碼是一個非常簡單的REST API公開一個端點,但你可以很容易地添加更多。

但是,如果您從頭開始構建RESTful API,那麼您可以考慮使用其他一些框架,如:Hapi,Restify,LoopBack和其他框架http://nodeframework.com/上列出 - Express是一個非常穩固但相當小的框架,它不是那裏唯一的選擇。

+0

Woop Woop :)很好地解釋了先生 –

+0

我試過但在我的app.js中複製這個模塊,當做「npm start」時,它調用bin/www並引發連續的錯誤。最初端口設置錯誤。解決它會引發偵聽器錯誤。我使用了Express生成器應用程序 – Joseph

0

是的,你可以。 express能夠返回其他html元素的響應。

但是,我建議您在express開發REST API時使用swagger project。在開發和維護API時,該項目肯定會派上用場,特別是如果您的API非常龐大且複雜(大量的URL和操作)。

這個site對如何在NodeJs中安裝,使用和運行Swagger有很好的解釋。

+0

這是一個不錯的選擇,但我不想用.yaml文件進行我的開發。我可以使用ExpressJS來構建NodeJS APi應用程序嗎? – Joseph

相關問題