使用node.js的开发框架express创建一个web应用

1.1.1:搭建环境

    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项目并启动它,了解了项目的大体结构。

 

转载于:https://www.cnblogs.com/murenziwei/p/10140950.html

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
### 回答1: 使用Node.js开发购物车系统非常简单,只需要几行代码就可以实现。可以使用Node.js中内置的HTTP模块来设置路由和处理用户输入,使用MongoDB来存储数据,使用Express来构建Web应用程序,使用React或Vue框架来实现客户端的用户界面。 ### 回答2: 使用Node.js开发一个简单的购物车系统可以通过以下步骤实现: 1. 安装Node.js和NPM:首先,在本地安装Node.js和NPM以便能够使用Node.js的所有功能。 2. 创建项目:在命令行中,使用`mkdir`命令创建一个新的文件夹作为项目的根目录,然后进入该文件夹。 3. 初始化项目:使用`npm init`命令初始化项目,并按照提示输入相关信息,生成`package.json`文件。 4. 安装依赖:根据项目需求,使用`npm install`命令安装所需的依赖,例如Express框架用于构建Web应用、body-parser用于解析POST请求等。 5. 创建服务器:使用Express框架创建一个简单的服务器,监听某个指定的端口。 6. 设置路由:通过设置不同的路由,实现不同的功能,例如处理商品列表请求、添加商品到购物车请求、从购物车删除商品请求等。 7. 创建数据结构:可以使用数组或者数据库来存储商品信息以及购物车信息。在购物车系统中,可以定义一个购物车对象,包含商品ID、名称、价格等属性。 8. 处理请求:根据不同的请求,使用相应的路由来处理请求。例如,当用户请求添加商品到购物车时,服务器应该接收到商品信息,并将该商品加入购物车。 9. 渲染页面:根据用户的不同操作,服务器可以返回相应的HTML页面,例如商品列表页面、购物车页面等。 10. 完善功能:根据业务需求,完善购物车系统的其他功能,例如更新商品数量、计算总价、生成订单等。 11. 测试和调试:在开发过程中,需要通过测试和调试来确保系统的正常运行,并修复可能的Bug。 12. 部署上线:最后,将购物车系统部署到生产环境,可以使用云平台、服务器等来部署和维护购物车系统。 通过上述步骤,就可以使用Node.js开发一个简单的购物车系统了。当然,为了满足实际需求,可能还需要添加其他的功能,例如用户登录、订单管理等。 ### 回答3: 使用Node.js开发一个简单的购物车系统十分简单。首先,我们需要创建一个基本的项目结构,并使用npm初始化一个新的Node.js项目。接下来,需要安装一些必要的依赖包,例如Express框架和body-parser中间件。 在项目的根目录下,创建一个名为app.js的文件。在该文件中,我们将使用Express创建一个服务器,并配置路由和中间件。首先,使用以下代码引入必要的模块: ``` const express = require('express'); const bodyParser = require('body-parser'); ``` 接下来,使用下面的代码来配置Express应用程序: ``` const app = express(); app.use(bodyParser.urlencoded({ extended: true })); app.use(bodyParser.json()); ``` 然后,我们可以定义一些路由来处理相关的请求,例如添加商品到购物车,删除购物车中的商品,获取购物车中的商品列表等。下面是一个添加商品到购物车的路由示例: ``` app.post('/cart/add', (req, res) => { const { productId, quantity } = req.body; // 在这里实现将商品添加到购物车的逻辑 res.json({ success: true }); }); ``` 在这个路由中,我们从请求的body中获取商品的ID和数量,并且可以根据需要执行相应的逻辑。另外,我们使用json()方法返回一个JSON响应,表明操作成功。 最后,我们需要在一个特定的端口上启动服务器,例如3000: ``` const port = 3000; app.listen(port, () => { console.log(`服务器正在运行,端口号:${port}`); }); ``` 这样,一个简单的购物车系统就开发好了。当然,这只是一个简单示例,实际开发中还可以进行更多的功能扩展和优化,例如用户认证、商品库存管理等。希望这个回答对您有帮助!

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值