我有一个使用angularJS编写并由grunt构建的应用程序。是否有一种方法可以从node js创建http服务器并在其中托管它。请分享任何代码片段或文档,以帮助解决这个问题。谢谢。
我有一个使用angularJS编写并由grunt构建的应用程序。是否有一种方法可以从node js创建http服务器并在其中托管它。请分享任何代码片段或文档,以帮助解决这个问题。谢谢。
(简单方法) 如果您没有任何服务器端逻辑,可以通过npm上的http-server模块简单地提供客户端AngularJS/HTML/css。 https://www.npmjs.com/package/http-server 只需通过以下命令安装: $>npm install -g http-server 然后进入您的客户端文件夹,键入http-server并按Enter。
如果您已编写了服务器端代码(ExpressJS或restify web api),则使用$>nodemon server.js
如果您正在寻找用于生产应用程序的选项,请考虑使用forever/pm2 https://www.npmjs.com/package/pm2 https://www.npmjs.com/package/forever
在您的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;
使用node app.js
命令来运行app.js
文件。
这个例子对我来说适用于任何情况
即使你有基础URL或没有
{{link1:源代码在这里}}
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}!`))