私はangularJSで書かれ、gruntによって構築されたアプリケーションを持っています。ノードjsからhttpサーバーを作成してそこでホストする方法はありますか?役立つコードスニペットまたはドキュメントを共有してください。ありがとう
(最も簡単)サーバー側ロジックがない場合は、npmからhttp-serverモジュールを介してクライアント側のAngularJS/HTML/cssを提供するだけです。 https://www.npmjs.com/package/http-server $> npm install -g http-serverでインストールし、クライアントフォルダーに移動してhttp-serverと入力し、Enterキーを押します。
サーバーサイドコードを記述している場合(ExpressJSまたはREST API Web API)、$> nodemon server.jsを使用します
本番アプリケーションのオプションを検討している場合は、forever/pm2 https://www.npmjs.com/package/pm2https://www.npmjs.com/package/を検討してください。永遠に
app.js
ファイルで次のコードを使用します。
var express = require('express');
var path = require('path');
var bodyParser = require('body-parser');
var app = express();
app.use(bodyParser.json());
app.use(bodyParser.urlencoded({extended: false}));
app.use(express.static(path.join(__dirname, 'public')));
/* GET home page. */
app.get('/', function(req, res, next) {
//Path to your main file
res.status(200).sendFile(path.join(__dirname+'../public/index.html'));
});
module.exports = app;
app.js
を使用してnode app.js
ファイルを実行します
この例は、どんな場合でも私にとってうまくいきます
Base-urlがあるかどうかに関係なく
var express = require('express');
var path = require('path');
var bodyParser = require('body-parser');
/**
* This server should Host angular appliation with or without base-url
* The angular static resources should be under `./public`
*/
var app = express();
app.use(function(req, res, next) {
console.log('Time:', Date.now() + ":", req.originalUrl)
next()
})
app.use(bodyParser.json());
app.use(bodyParser.urlencoded({
extended: false
}));
app.use(express.static(path.join(__dirname, 'public')));
app.use('/base-here-if-any', express.static(path.join(__dirname, 'public')))
app.get('*', function(req, res, next) {
//Path to your main file
res.status(200).sendFile(path.join(__dirname + '/public/index.html'));
});
const port = 3000
app.listen(port, () => console.log(`Example app listening on port ${port}!`))