[18/10]记录express框架的搭建及应用(一)

最近在复习web前端的express框架,准备重新搭建一个新的,准备将流程记录一下。

1. 准备

搭建express框架的第一步,是工具的准备。
express框架是一个基于node.js的开发框架(MVC框架),前提自然是安装好node.js。在安装完node.js之后,由于我的编译器是WebStorm,还需要在settings里将node.js启用。一个工程启用一次即可。
建立工程文件夹,然后创建所需要的文件夹目录:

(由于我做的只是一个简单应用,只在本地测试交互,所以按照最少的创建文件夹了。)

之后是安装相应的模块,在这里我用的是淘宝NPM镜像。使用方式如下:

$ npm install -g cnpm --registry=https://registry.npm.taobao.org

安装完CNPM之后,安装相应的模块即可。

cnpm install swig --save
cnpm install body-parser --save 
cnpm install cookies --save
cnpm install express --save
cnpm install markdown --save
cnpm install mongoose --save

2. app.js(开关)和连接MongoDB(另一个开关)

做完准备之后我们在第一级目录下创建一个js文件app.js,作为工程的开始。
首先把该引入的模块都引入了:

var express = require('express');
var swig = require(‘swig’);
var mongoose = require('mongoose');
var bodyParser = require('body-parser');

定义app方法:

var app = express();

定义相关:

app.use(bodyParser.urlencoded({extended:true});  

用来解析request中body的urlencoded字符,只支持utf-8的编码的字符,也支持自动的解析gzip和zlib。返回的对象是一个键值对,当extended为false的时候,键值对中的值就位‘String’或‘Array’形式,为true的时候,则可以为任何数据类型。

app.engine('html',swig.renderFile);
app.set('views','./views'); //第一个代表视图层,第二个代表视图路径
app.set('view engine','html'); //视图引擎 取消模板缓存数据
swig.setDefaults({cache:false});//设置swig页面不缓存
//路由转发,分别转发到main.js/admin.js/api.js
app.use("/",require("./routers/main"));  //前台路由
app.use("/admin",require("./routers/admin")); //后台路由
app.use("/api",require("./routers/api")); //api路由
app.use(function(request,response,next){
   next(); //中间件规范以后继续执行
});
app.use('/public',express.static(__dirname+'/public'));  
var url = "mongodb://localhost:27017/’工程名‘";
mongoose.Promise = global.Promise;
mongoose.connect(url,{useNewUrlParser:true},function(err){
   if(err!=null){
      console.log("数据库连接失败"); //如果出现错误则在控制台报错
   }
   else{
      console.log("数据库连接成功");
      var server = app.listen(8888,function(){
         console.log("服务开启"); //连接成功,开启监听
      });
   }
});

之后在cmd命令行写行连接MongoDB的代码。为了方便以后运行,写个批处理文件。
新建记事本文件,敲入代码:

mongod -dbpath=F:\exp\db -port=27017  

F:\exp\db是我工程db文件夹的路径。27017port是MongoDB的端口。
写好之后,保存文件。将文件夹后缀改为’.bat’,设置为批处理文件,以后每次要连接MongoDB时,打开bat批处理文件即可。
文件批处理
当看到‘waiting for connection on port 27017’表示MongoDB已经开启。

3.路由层的基本设置

  • 前台路由
  • 后台路由
  • api路由
    在app.js文件中设置好了对路由的转发,在routers文件夹中我们创建相应的js文件。
    以前台路由为例子:
//前台路由
var express = require(’express‘);
var routers = express.Router();

routers.get('/',function(request,response,next){
	res.send('<h1>这是前台首页</h1>');
});
module.exports = routers;

那么当我们开启MongoDB并运行app.js,进入localhost:8888时,就会显示h1标题格式的“这是前台首页”。
在views\main内新建index.html,在前台路由设置对index.js的转发。

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

routers.get('/',function(req,res,next){
	res.render('main/index');
});	
module.exports = routers;

那么打开localhost:8888就会显示index.html的页面,关于index将在之后写到。
基本了解了前台路由的转发,我们把后台、api路由的基本框架写一遍。
由于内容还没写到,就先不用写。

//后台路由
var express = require('express');
var routers = express.Router();

module.exports = routers;
//api路由
var express = require('express');
var routers = express.Router();

module.exports = routers;

到此,就是路由层的基本设置。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值