angularjs - 获取错误平均值应用程序

标签 angularjs node.js nginx mean-stack

我一直在学习如何使用 MEAN 堆栈来构建 Web 应用程序,到目前为止它非常有趣。我没有使用 yeoman 生成器或 npm app 为我生成代码,而是从头开始构建我的整个应用程序。这样我就知道每个部分是如何连接的以及我的应用程序发生了什么。当我查看开发者控制台并看到

时,我刚刚开始连接我的应用程序的前端和后端
GET http://blog.dev/bower_components/angular/angular.js

不仅是 angular,还有我拥有的所有其他资源(Modernizr、angular-routes、mootools、restangular 等)。当您使用 yeoman Angular 生成器时,您应该运行 grunt serve 命令来启动 Angular 侧。因为我从头开始构建应用程序并且我使用 npm 作为构建工具,所以我不知道如何构建前端服务器。所以,我只是用一个简单的 nginx 虚拟主机指向我的 index.html。这是配置:

server {
        listen 80;

        server_name blog.dev;

        root /home/michael/Workspace/blog/app;
        index index.html index.htm;

        location / {
                try_files $uri $uri/ =404;
        }
}

我不确定还有哪些其他变量会影响这种情况,所以如果我遗漏了什么,请告诉我,我很乐意为您提供所需的东西!

最佳答案

如果您使用的是平均堆栈,您应该能够同时托管后端并直接使用 Node 服务前端。

我不确定你的项目结构,但这是我现在正在研究的一个结构。

/bin --contains a file called www.js (used to launch app)
/data
/models
/node_modules
/public -- contains my angular implementation
/routes -- contains express routes
/temp
/upload
/views
app.js -- main configuration for express
api.js -- my apis
package.json

在/bin/www.js 文件中,您有启动 Node 服务器的代码。

var app = require('../app');

app.set('port', process.env.PORT || 3000);

var server = app.listen(app.get('port'), function() {
debug('Express server listening on port ' + server.address().port);
});        

您还需要设置 express 和您的路线,因此请先查看路线 在路由目录中,我有一个名为 index.js 的文件

在这个文件中,我定义了一条通往我的 Angular index.html 页面的路线。

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

/* GET home page. */
router.get('/', function(req, res) {
res.redirect('/pages/index.html');
});

module.exports = router;

当然你需要设置 express 。

process.env.TMPDIR = 'tmp'; // to avoid the EXDEV rename error, see            http://stackoverflow.com/q/21071303/76173

var express = require('express');
var path = require('path');
var favicon = require('static-favicon');
var logger = require('morgan');
var cookieParser = require('cookie-parser');
var bodyParser = require('body-parser');
var multer = require('multer');
var flow = require('./flow-node.js')('tmp');
var multipart = require('connect-multiparty');
var multipartMiddleware = multipart();
var uuid = require('uuid');
var mongoose = require('mongoose');
var session = require('express-session');

var routes = require('./routes/index');

var app = express();

app.use(favicon());
app.use(logger('dev'));
app.use(bodyParser.json());
app.use(bodyParser.urlencoded());
app.use(cookieParser());
app.use(session({genid: function(req) { return uuid.v4()}, secret:   'XXXXXXXXXXX',
    saveUninitialized: true,
    resave: true}));
app.use(express.static(path.join(__dirname, 'public')));

app.use('/', routes);
app.use('/users', users);

module.exports = app;

现在假设您的 Angular 文件和 javascript 在某个地方的“公共(public)”目录中,您应该能够使用以下命令启动 Node。

node bin/www

然后将浏览器指向 http://localhost:3000并开展业务。

希望这对学习有所帮助。

关于angularjs - 获取错误平均值应用程序,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29939088/

相关文章:

javascript - 如何在 Angular 中访问表单元素的 $valid ?

node.js - NodeJS - "socket hang up"实际上是什么意思?

javascript - express js 不提供静态文件

html - 将最小值设置为减法 (AngularJS)

javascript - 当 url 链接中有参数时,无法从状态 'state1' 解析 'state'

angularjs - 传单 map 正在加载部分图 block

docker - Nginx 在多容器 docker compose 设置中找不到上游主机

node.js - Nestjs 响应序列化与对象数组

windows - 无法运行 Nginx 可执行文件

ruby-on-rails - 为什么 Rails with Passenger/nginx 只能在开发模式下工作?没有可用的日志