搭建环境

1.安装Express

按键:Windows R=>输入cmd,打开命令行,输入

npm install -g express@3

我们需要用全局模式安装Express,因为只有这样,我们才能在命令行中使用它

注意:这里我只选用Express 3.x版本,要是你对Express3x版本熟悉了的话,你只需看一下Migrating from 3.x to 4.x 的文档即可过渡到Express 4.x

2.新建一个工程

继续打开命令行,输入

express -e murenziwei

注意:Express 3.x中使用ejs时不再是-t ejs,而是-e,可以输入express -h查看

继续输入:(路径切换到文件夹murenziwei)

cd murenziwei

继续输入:(安装所需模块)

npm install

如图所示

安装成功后输入:

node app

在浏览器上访问ocalhost:3000,如图以下:

3.项目结构

我们回头看看生成的项目目录里面都有什么,打开我们的murenziwei文件夹,如图

  • node_modules:存放package.json中安装的模块,当你在package.json中添加依赖的模块并安装后,该模块会存放在这个文件夹
  • public:存放图片/样式/脚本等文件
  • routes:存放路由文件
  • views:存放视图文件,或者说是模板文件
  • app.js:启动文件,或者说入口文件
  • package.json:存储项目的信息及模块依赖,当在dependencies中添加依赖的模块时,运行npm install,npm会检查当前目录下的package.json,并自动安装所有指定的模块
  • package-lock.json:记录整个node_modules文件夹的树状结构,加快安装模块的速度

让我们来看一看,打开app.js,究竟是什么代码组成?

/*

 Module dependencies.

 */

var express = require('express');

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

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

var http = require('http');

var path = require('path');

var app = express();


// all environments

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

app.set('views', path.join(__dirname, 'views'));

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

app.use(express.favicon());

app.use(express.logger('dev'));

app.use(express.json());

app.use(express.urlencoded());

app.use(express.methodOverride());

app.use(app.router);

app.use(express.static(path.join(__dirname, 'public')));
 

// development only

if ('development' == app.get('env')) {

 app.use(express.errorHandler());

}


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

app.get('/users', user.list);

 

http.createServer(app).listen(app.get('port'), function(){

 console.log('Express server listening on port '   app.get('port'));

});  

这里我们通过require()加载了express,http,path模块,还有routes文件夹下的index.js和user.js

1.app.set('port', process.env.PORT || 3000):设置端口为process.env.PORT或者3000;

2.app.set('views', path.join(__dirname, 'views')):设置views文件夹为存放视图文件的目录,即存放模板文件的地方,__dirname为全局变量,存储当前正在执行的js所在的目录;

3.app.set('view engine','ejs'):设置视图模块引擎为ejs

4.app.use(express.favicon()):connect内建的中间件,使用默认的favicon图标,如果想使用自己的图标,需改为app.use(express.favicon(__dirname "/public/images/favicon.ico")),这里我们把自定义的favicon.icon放到/public/images文件夹下

5.app.use(express.logger('dev')):connect内建的中间件,在开发环境下使用,在终端显示简单的日志,例如在启动app.js后访问localhost:3000,终端会输出:

如果没有这一行代码,不管你怎么刷新页面,终端都只有一行Express sever listening on port 3000

6.app.use(express.json());

app.use(urlencoded());

用来解析请求体,支持application/json,application/x-www-form-urlencoded

7.app.use(express.methodOverride()):connect内建的中间件,可以协助处理POST请求,伪装成 PUT,DELETE和其它HTTP方法

8.app.use(app.router):调用路由解析的规则

9.app.use(express.static(path.join(__dirname, 'public'))):connect内创建的中间件,将根目录下的public文件夹设置为存放images,css,js等静态文件的目录

if ('development' == app.get('env')) {
 app.use(express.errorHandler());
}

此段代码可理解为:配置开发环境下的错误处理,输出错误信息

10.app.get('/', routes.index):路由控制器,如果用户访问/(主页),则由routes.index来处理,routes/index.js的内容如下:

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

通过exports.index导出index函数接口,app.get('/',routes.index)相当于:

app.get("/",function(res,rep){

res.render("index",{title:"Express"});

})

解释一下上行的res.render("index",{title:"Express"}):使用ejs模板引擎解析views/index.ejs(因为我们之前通过app.set("views",__dirname "/views")设置了模板文件默认存储在views文件夹下),并传入一个对象,这个对象只有一个title属新,它的值为字符串Express,即用字符串Express替换views/index.ejs中所有的title变量,这就是我们所说的渲染视图,或者说渲染模板。

11.

http.createServer(app).listen(app.get('port'), function(){
 console.log('Express server listening on port '   app.get('port'));
});

这段代码可以这样理解:创建http服务器并监听3000端口,创建成功后,终端显示如下

然后我们就可以在浏览器中访问localhost:3000了

最后总结一下我所讲的知识点:如何创建一个node项目并启动它,了解了项目的大体结构。

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持Devmax。

详解如何使用node.js的开发框架express创建一个web应用的更多相关文章

  1. node.js三个步骤实现一个服务器及Express包使用

    这篇文章主要介绍了node.js三个步骤实现一个服务器及Express包使用,文章通过新建一个文件展开全文内容,具有一定的参考价值,需要的小伙伴可以参考一下

  2. Node.js使用Express创建Web项目详细教程

    如果需要入门使用node.js进行web开发,正在学习 nodejs web开发指南 的和想快速了解node.js web开发模式的朋友,相信本文是有一定帮助意义的。

  3. 详解Node.js开发中的express-session

    express-session 是基于express框专门用于处理session的中间件,本篇文章主要介绍了详解Node.js开发中的express-session,有兴趣的可以了解一下

  4. nodejs+express搭建多人聊天室步骤

    本篇文章给大家详细讲解了nodejs+express搭建一个简易的多人聊天室的详细步骤,有兴趣的朋友学习下。

  5. node.js的Express服务器基本使用教程

    express是一个开源的node.js项目框架,下面这篇文章主要给大家介绍了关于node.js的Express服务器基本使用的相关资料,文中通过示例代码介绍的非常详细,需要的朋友们下面随着小编来一起学习学习吧

  6. node.js(express)中使用Jcrop进行图片剪切上传功能

    最近在项目开发中遇到了这样的需求就是要实现用户上传头像,并且要保存用户裁切后的部分作为用户头像。下面给大家分享node.js(express)中使用Jcrop进行图片剪切上传功能,需要的的朋友参考下吧

  7. 基于socket.io+express实现多房间聊天

    本文给大家分享的是使用node.js,基于socket.io+express实现多房间聊天的代码,非常的实用,有需要的小伙伴可以来参考下

  8. 使用express搭建一个简单的查询服务器的方法

    本篇文章主要介绍了使用express搭建一个简单的查询服务器的方法,小编觉得挺不错的,现在分享给大家,也给大家做个参考。一起跟随小编过来看看吧

  9. Node.js的Express框架使用上手指南

    这篇文章主要介绍了Node.js的Express框架使用上手指南,Express可以说是目前Node世界中人气最高的开发框架,需要的朋友可以参考下

  10. nodejs中express入门和基础知识点学习

    这篇文章给大家分享了关于学习nodejs中express入门和基础知识点内容,有兴趣的朋友们参考下。

随机推荐

  1. Error: Cannot find module ‘node:util‘问题解决

    控制台 安装 Vue-Cli 最后一步出现 Error: Cannot find module 'node:util' 问题解决方案1.问题C:\Windows\System32>cnpm install -g @vue/cli@4.0.3internal/modules/cjs/loader.js:638 throw err; &nbs

  2. yarn的安装和使用(全网最详细)

    一、yarn的简介:Yarn是facebook发布的一款取代npm的包管理工具。二、yarn的特点:速度超快。Yarn 缓存了每个下载过的包,所以再次使用时无需重复下载。 同时利用并行下载以最大化资源利用率,因此安装速度更快。超级安全。在执行代码之前,Yarn 会通过算法校验每个安装包的完整性。超级可靠。使用详细、简洁的锁文件格式和明确的安装算法,Yarn 能够保证在不同系统上无差异的工作。三、y

  3. 前端环境 本机可切换node多版本 问题源头是node使用的高版本

    前言投降投降 重头再来 重装环境 也就分分钟的事 偏要折腾 这下好了1天了 还没折腾出来问题的源头是node 使用的高版本 方案那就用 本机可切换多版本最终问题是因为nodejs的版本太高,导致的node-sass不兼容问题,我的node是v16.14.0的版本,项目中用了"node-sass": "^4.7.2"版本,无法匹配当前的node版本根据文章的提

  4. nodejs模块学习之connect解析

    这篇文章主要介绍了nodejs模块学习之connect解析,小编觉得挺不错的,现在分享给大家,也给大家做个参考。一起跟随小编过来看看吧

  5. nodejs npm package.json中文文档

    这篇文章主要介绍了nodejs npm package.json中文文档,本文档中描述的很多行为都受npm-config(7)的影响,需要的朋友可以参考下

  6. 详解koa2学习中使用 async 、await、promise解决异步的问题

    这篇文章主要介绍了详解koa2学习中使用 async 、await、promise解决异步的问题,小编觉得挺不错的,现在分享给大家,也给大家做个参考。一起跟随小编过来看看吧

  7. Node.js编写爬虫的基本思路及抓取百度图片的实例分享

    这篇文章主要介绍了Node.js编写爬虫的基本思路及抓取百度图片的实例分享,其中作者提到了需要特别注意GBK转码的转码问题,需要的朋友可以参考下

  8. CentOS 8.2服务器上安装最新版Node.js的方法

    这篇文章主要介绍了CentOS 8.2服务器上安装最新版Node.js的方法,本文给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下

  9. node.js三个步骤实现一个服务器及Express包使用

    这篇文章主要介绍了node.js三个步骤实现一个服务器及Express包使用,文章通过新建一个文件展开全文内容,具有一定的参考价值,需要的小伙伴可以参考一下

  10. node下使用UglifyJS压缩合并JS文件的方法

    下面小编就为大家分享一篇node下使用UglifyJS压缩合并JS文件的方法,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧

返回
顶部