创建基本应用程序 - 平均

时间:2016-11-22 21:35:02

标签: javascript angularjs node.js express

我也是Node.js和Express的新手。我想创建一个基本的AngularJS应用程序,但我不知道从哪里开始。这是我想要实现的文件组织:

- public
----- app
---------- components
----------------- component0
----------------------- c0controller.js
----------------------- c0.html
----------------------- c0Service.js
----------------- component1
----------------------- c1controller.js
----------------------- c1.html
----------------------- c1Service.js
---------- assets [...]
----- index.html
----- app.js
----- module.js
- node_modules [...]
- server.js
- route.js

首先,是否可以这样做?

基本上,index.html文件是我定义角度应用程序ui-view的地方。

我的主要问题是我无法找到如何在server.js中设置我的节点服务器......这就是我所拥有的,但说实话,我并不了解每一行。 ..

// set up ========================
var express  = require('express');
var app      = express();                               // create our app w/ express
var mongoose = require('mongoose');                     // mongoose for mongodb
var morgan = require('morgan');             // log requests to the console (express4)
var bodyParser = require('body-parser');    // pull information from HTML POST (express4)
var methodOverride = require('method-override'); // simulate DELETE and PUT (express4)
var routes = require('./routes.js');

// configuration =================

mongoose.connect('mongodb://localhost/test');     // connect to mongoDB database

app.set('views', __dirname + '/public/app');
app.set('view engine', 'html');
app.use(express.static(__dirname + '/public'));                 // set the static files location /public/img will be /img for users
app.use(morgan('dev'));                                         // log every request to the console
app.use(bodyParser.urlencoded({'extended':'true'}));            // parse application/x-www-form-urlencoded
app.use(bodyParser.json());                                     // parse application/json
app.use(bodyParser.json({ type: 'application/vnd.api+json' })); // parse application/vnd.api+json as json
app.use(methodOverride());

app.get('/', routes.index);
app.get('*', routes.index);

// listen (start app with node server.js) ======================================
app.listen(8080);
console.log("App listening on port 8080");

routes.js中,我导出以下方法:

var exports = module.exports = {};

exports.index = function(req, res){
  res.render('index');
};

我已安装ejs,但我不知道该如何处理......我有点迷失,所以任何帮助都会受到赞赏;)

1 个答案:

答案 0 :(得分:0)

只是给你一个简短的解释每一行......

以下是您需要在项目中使用的库...

// set up ========================
var express  = require('express');
var app      = express();                               // create our app w/ express
var mongoose = require('mongoose');                     // mongoose for mongodb
var morgan = require('morgan');             // log requests to the console (express4)
var bodyParser = require('body-parser');    // pull information from HTML POST (express4)
var methodOverride = require('method-override'); // simulate DELETE and PUT (express4)

routes变量设置为应用的routes.js文件中的导入/必需对象。可能会有一个modules.export对象在routes.js文件中分配了一个routes对象,该对象将被导出到应用程序的其他部分。

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

这是您连接到数据库的位置。您正在使用mongoose库来帮助您为模型创建模式。 mongoose的connect方法中的字符串是数据库的位置(' test')。在尝试提供应用程序之前,您需要确保运行mongodb。

// configuration =================    
mongoose.connect('mongodb://localhost/test');     // connect to mongoDB database

您可以在此处将应用程序的视图设置为公共目录中的app目录。在应用程序内部,您将能够创建您的html文件。

app.set('views', __dirname + '/public/app');

在这里,您要说明您的视图引擎将是纯HTML。

app.set('view engine', 'html');

您告诉所有静态文件,例如图像将位于/ public目录中。

  app.use(express.static(__dirname + '/public'));                 
//set the 
static files location /public/img will be /img for users

以下是帮助您进行应用程序开发所需的中间件。 Morgans很明显,因为它有一个注释,bodyParser对解析你的响应主体和请求http对象至关重要......

app.use(morgan('dev'));                                         // log every request to the console
app.use(bodyParser.urlencoded({'extended':'true'}));            // parse application/x-www-form-urlencoded
app.use(bodyParser.json());                                     // parse application/json
app.use(bodyParser.json({ type: 'application/vnd.api+json' })); // parse application/vnd.api+json as json
app.use(methodOverride());

这是你的路线。基本上当你点击路线' /'时,路线内的任何内容都会被执行......

app.get('/', routes.index);
app.get('*', routes.index);

在下面,您将端口8080指定为应用程序将侦听传入请求的端口。

// listen (start app with node server.js) ======================================
app.listen(8080);
console.log("App listening on port 8080");