Express框架之app.js配置文件说明

JSEnterpriseExampleApp:JSEnterpriseExampleApp JS 企业示例应用程序 这个存储库是做什么用的? JS 企业示例应用程序 入门 安装开发者依赖 npm install 安装客户端库 bower install 运行网络服务器 gulp webserver 立即下载

express.js是nodejs的一个MVC开发框架,并且支持jade等多种模板。下面简单来说说express的app.js文件的配置内容

先看一下这个app.js文件

01 /*
02  Module dependencies.
03 */
04
05 var express = require('express')
06     routes = require('./routes')
07     http = require('http');
08
09 var app = express();
10
11 app.configure(function(){
12 app.set('port', process.env.PORT || 3000);
13 app.set('views', __dirname + '/views');
14 app.set('view engine', 'jade');
15
16 app.use(express.favicon());
17 app.use(express.logger('dev'));
18 app.use(express.bodyParser());
19 app.use(express.methodOverride());
20 app.use(app.router);
21 app.use(express.static(__dirname + '/public'));
22 });
23
24 app.configure('development', function(){
25 app.use(express.errorHandler());
26 });
27
28 app.get('/', routes.index);
29
30 http.createServer(app).listen(app.get('port'), function(){
31 console.log("Express server listening on port " + app.get('port'));
32 });


>>引入模块

1 var express = require('express');

    require()是node.js提供的函数,可以让你引入其他模块以调用模块的函数和变量,默认下node.js会在$NODE_PATH和目前js所在目录下的node_modules文件夹下去寻找模块,express.js继承自connect模块,所以如果你的node_modules文件夹下没有connect模块也是不行的。


>>设置views路径和模板

1 <b>app.set('views', __dirname + '/views');
2 app.set('view engine', 'jade');</b>

    上面两行是设置views文件夹,即模板文件夹,__dirname是node.js里面的全局变量,即取得执行的js所在的路径,另外__dirname是目前执行的js文件名。所以,app.set(‘views’, __dirname + ‘/views’);是设置views的文件夹。
    而app.set('view engine', 'jade');是设置express.js所使用的render engine。除了Jade之外express.js还支持EJS(embedded javascript)、Haml、CoffeScript和jQuerytemplate等js模板



>>app.use配置

1 <b>app.use(express.bodyParser());
2 app.use(express.methodOverride());
3 app.use(app.router);
4 app.use(express.static(__dirname + '/public'));</b>

    express.bodyParser()是Connect內建的middleware,设置此处可以将client提交过来的post请求放入request.body中。
    express.methodOverride()也是Connect內建的,可以协助处理POST请求伪装PUT、DELETE和其他HTTP methods。
    app.router()是route requests,但express.js的官方文件是这句可有可无,并且经过测试还真的是这样,不过还是写上吧。
    express.static()也是一个Connect內建的中间件来处理静态的requests,例如css、js、img文件等。所以static()里面指定的文件夹中的文件会直接作为静态资源吐出来。


>>app.configure设置

1 <b><b>app.configure('development', function(){
2 app.use(express.errorHandler({ dumpExceptions: true, showStack: true }))
3 ;
4 });
5 app.configure('production', function(){
6 app.use(express.errorHandler());
7 });</b></b>

    express.errorHandler()是Connect內建的中间件来协助处理例外。这里也揭露了app.configure()的另一用法,第一个参数是node.js的环境设定,如此我们就可以设定在不同的执行环境下使用不同的dump。注意:node.js是透过NODE_ENV這个环境变量来取得环境设定,e.g.:在命令列,NODE_ENV=production node app.js就可以进入production环境。


>>路由和request的处理

1 <b><b><b>app.get('/', function(req, res){
2 res.render('index', {
3 title: 'Express'
4 });
5 });</b></b></b>

    上面的代码意思是,get请求根目录则调用views文件夹中的index模板,并且传入参数title为“Express”,这个title就可以在模板文件中直接使用。

    在express中要处理post请求,需要使用app.post()。如下面的代码:

1 <b><b><b>app.post('/add', function(req,res){
2 res.render('add', {
3 sum: req.body.a + req.body.b
4 });
5 });</b></b></b>

    前面我们提到了req.body是express.bodyParser()把POST参数处理后的结果。

    另外除了get和post方法,还有app.all()意思就是所有的请求处理。


>>添加listen,启动nodejs服务器

1 <b>http.createServer(app).listen(app.get('port'), function(){
2 console.log("Express server listening on port " + app.get('port'));
3   www.2cto.com});</b>

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


 作者:YouDoce

js-app-example:需要,引导程序,带有 epsg 的传单示例 js-app-example 需要,引导程序,带有 epsg:3301 底图的传单示例 运行 r 优化器: $ node tools/r.js -o tools/build.js 立即下载

相关推荐

example-serverless-application:用于TypeJS的用Typescript编写的简单RESTful API

example-serverless-application:用于TypeJS的用Typescript编写的简单RESTful API

express生成器-appjs配置

var createError = require(‘http-errors’); var express = require(‘express’); var path = require(‘path’); var cookieParser = require(‘cookie-parser’); var logger = require(‘morgan’); //解读日志 // 引入路由 var indexRouter = require(‘./routes/index’); var usersRouter

weixin_46087056的博客 633

exampleJS:JavaScript示例代码

exampleJS JavaScript示例代码 tryto_WebSocket_server_push WebSocket示例。服务器端是用C语言创建的。 使用libwebsockets库。 build_test-server.sh libwebsockets附带的构建测试服务器 run_test-server.sh运行libwebsockets随附的测试服务器 客户端是 build_example.sh生成示例(服务器) run_example.sh运行示例(服务器) 客户端在浏览器中运行src / client.html tryto_ModelessDiag 无模式对话框的示例。 关键是您可以访问通过使用window.opener对象打开的原始DOM。 example1在Windows 7 Chrome Ver.44中,该值未从子窗口传递到父窗口。 example2即使

【亲测免费】 Vue+Node.js+ElementUI+MySQL+Express 项目教程

Vue+Node.js+ElementUI+MySQL+Express 项目教程 1. 项目目录结构及介绍 vue-nodejs-elementUI-mysql-express-demo/ ├── express-demo/ │ ├── app.js │ ├── bin/ │ ├── config/ │ ├── controllers/ │ ├── models/ │ ├─...

gitblog_01189的博客 1115

基于MATLAB对地下水水位的数据处理

本文借用Matlab强大的计算功能和绘图功能,对某阿拉干监测数据进行曲线拟合,得到拟合函数。再利用GM(1.1)时间序列模型构建地下深埋的预测模型,进而对阿拉干 2021,四个位置H1,H2,H3,H4年度各监测井平均深埋位置变化进行分析。

keykangkang1001的博客 1245

Anolis OS 23实战:5分钟搞定AI环境配置(含NVIDIA驱动一键安装)

本文详细介绍了如何在Anolis OS 23上快速配置AI开发环境,包括NVIDIA驱动的一键安装和TensorFlow、PyTorch等AI框架的部署。通过智能硬件适配引擎和优化后的二进制包,用户可在5分钟内完成传统需要数小时的配置工作,显著提升AI项目开发效率。

weixin_30335575的博客 536

Node.js 应用根路径管理库 - app-root-path 快速指南

Node.js 应用根路径管理库 - app-root-path 快速指南 项目介绍 app-root-path 是一个简洁而强大的Node.js模块,旨在帮助开发者轻松获取应用程序的根目录路径。这在处理多文件、多层级结构的项目中尤为重要,它使得引用资源和配置文件时无需硬编码具体路径,增强应用的可移植性和维护性。 项目快速启动 要快速开始使用 app-root-path, 首先需要将其添加到你的项...

gitblog_00556的博客 601

从FinFET到NanoSheet:一文看懂TSMC制程技术的架构革命与性能飞跃

本文深入解析了TSMC从FinFET到NanoSheet的制程技术架构革命。FinFET通过三维立体结构解决了短沟道效应,而NanoSheet采用环绕栅极设计,实现了更强的静电控制与设计灵活性,结合EUV光刻技术,共同推动了芯片性能与能效的飞跃,为下一代AI与高性能计算奠定基石。

i3j4k5的博客 288

Swagger Server 教程:从零开始搭建RESTful API服务

Swagger Server 教程:从零开始搭建RESTful API服务 一、项目目录结构及介绍 Swagger Server 是一个基于Express框架的Node.js应用,用于快速构建和文档化RESTful APIs。以下是其基本的项目目录结构及其简介: swagger-server/ ├── app.js <!-- 主入口文件,启动应用程序 --...

gitblog_00352的博客 717

13、离散时间系统建模与分析

本文系统介绍了离散时间系统的建模与分析方法,涵盖连续时间模型的离散化过程、系统稳定性判断准则、输入输出模型转换方法以及有限脉冲响应和阶跃响应模型的应用。通过多个示例详细展示了不同系统在离散化过程中的特性变化,并探讨了采样间隔对系统动态特性的影响。此外,文章还分析了时间延迟的处理方法,并总结了关键知识点及操作步骤,为离散时间系统的实际应用提供了理论基础和实践指导。

2w3e4r5t6y的博客 189

2026华为OD面试题029:勇攀数字高峰

在给定的数字地形图里寻找登山路径,数字代表当前位置的海拔高度。要求从最低海拔出发,不断攀登,最终到达最高山峰。地图保证最低海拔和最高山峰都只有一个。 登山规则: - 路径上的海拔必须严格递增 - 只能向上下左右 4 个方向移动 - 路径必须从最低海拔开始,到最高海拔结束 - 每个地点只能走一次 - 每一步的攀登高度差必须大于 0,且不超过指定值 `K` 输出满足条件的登山路径的数量。

琅嬛福地 120

Node.js 电商项目搭建教程

Node.js 电商项目搭建教程 本教程基于 RafaelGoulartB/nodejs-ecommerce,一个使用Express框架和MySQL数据库实现的MVC架构电商项目。我们将逐步了解其核心组件,并指导您如何设置和理解此项目。 1. 项目目录结构及介绍 Node.js电商项目遵循清晰的MVC(Model-View-Controller)设计模式,确保代码的组织性和可维护性。以下是项目的主...

gitblog_01097的博客 891

【深度学习新浪潮】气候预测模型的研发进展一览(2025年版)

模型类型核心优势适用场景不足ARIMA(统计模型)简单高效、可解释性强短期单变量预测非线性、长时依赖建模差随机森林(机器学习)多特征融合、抗噪声中短期多因素预测空间相关性、时序趋势捕捉弱LSTM(深度学习)长时依赖建模、端到端中长期时序预测物理一致性差、数据需求量大物理知情AI物理规律约束、高可靠性极端天气、长期气候变化模型复杂、计算成本高。

专注:太空算力、AI infra、异构调度、大模型成本工程 528

Protractor Demo 项目使用教程

Protractor Demo 项目使用教程 1. 项目的目录结构及介绍 protractor-demo/ ├── app/ │ └── expressserver.js ├── howtos/ ├── test/ │ ├── conf.js │ └── spec.js ├── .gitignore ├── LICENSE ├── README.md ├── package.json ...

gitblog_00712的博客 323

AI原生应用API编排:如何实现高效的权限管理?

随着GPT-4、Claude 3等大模型的普及,AI原生应用(从设计之初就以AI为核心的应用)正从“概念”走向“落地”。依赖大量外部API的协同工作(如用户身份API→大模型生成API→支付API→存储API)。但随之而来的挑战是:如何在复杂的API调用链中,确保每个环节的权限合规?本文将聚焦这一问题,覆盖API编排的基础逻辑、权限管理的核心机制(如RBAC/ABAC)、实战工具链(如OPA策略引擎),以及常见场景的解决方案。本文将按照“场景引入→核心概念→原理拆解→实战演练→趋势展望”的逻辑展开。

大数据洞察的博客 452

STM32F407中文手册

STM32f407中文手册 本参考手册面向应用开发人员,提供有关使用 STM32F405xx/07xx、STM32F415xx/17xx、 STM32F42xxx 和 STM32F43xxx 微控制器存储器与外设的完整信息。STM32F405xx/07xx、STM32F415xx/17xx、STM32F42xxx 和 STM32F43xxx 构成一个微 控制器系列,各产品具有不同的存储器大小、封装和外设。有关订购信息以及器件的机械与电气特性,请参见数据手册。有关 ARM Cortex™-M4F 内核的信息,请参见《Cortex™-M4F 技术参考手册》。

node.js第三方Express 框架

1、Express 简介 2、Express 安装及使用 3.Express 安装 4.Nodemon‌的使用 5.Express 的使用

chengcheng9876的博客 1890

大中型超市收银系统(可直接运行)

光步前台收银系统系统功能:商品销售、商品退货、挂单、收银员权限、会员销售、单品取消、整单取消、商品查询、脱机销售、脱机数据上传,基本资料下载,开钱箱、小票打印、收款结算,支持多币种付款方式(现金、储值卡、礼券、微信等),支持多种促销。运行环境:.net 4.0登陆信息用户名:1001 密码:123456内置商品信息,商品编码可输入00001000 - 00010000,测试效果相关功能键F5 结算 F9挂单 F11商品查询 F8退货 Insert单品取消 Del整单取消 F12开钱箱F2 会员 Ctrl+Z退出系统 Home 锁屏 相关源码待公开

Express.js 项目快速指南

Express.js 项目快速指南 【免费下载链接】express 项目地址: https://gitcode.com/gh_mirrors/exp/express 1. ...

gitblog_00977的博客 953

霍尼韦尔SoftMaster使用说明

霍尼韦尔SoftMaster使用说明

WINCC7.3破解文件

WINCC7.3硬件够破解文件,有需要的下载!WINCC7.3硬件够破解文件,有需要的下载!

Express框架

Express框架

thwr1881的博客 2727

微软Graph JavaScript SDK Node.js Express应用指南

微软Graph JavaScript SDK Node.js Express应用指南 项目概述 此项目是一个演示如何运用Microsoft Graph JavaScript SDK在Node.js环境下,通过Express框架访问Office 365数据的样例应用。适用于希望将Office 365服务融入其Web应用的开发者。 目录结构及介绍 该开源项目采用标准的Node.js工程布局,主要结...

gitblog_00013的博客 615

Nodejs--Express框架使用

我们可以写一个类似springmvc那样的拦截器,来判断是否登录//导入会话管理next();}else{//如果不是白名单,那么就需要验证了console.log("黑名单拦截...");//黑名单= null){//比较二者值//相等,放行,跟新session时间console.log("放行...");//遍历完没有找到seesionID,说明回话过期return res.status(401).json({message:'会话过期!,请重新登录'})

可爱的鸡仔的博客 1801

Express入门

一旦项目启动并运行,你可以根据需要自定义和扩展它。添加路由:在routes目录中创建新的路由文件。配置中间件:在app.js中添加或配置中间件。连接数据库:使用 Mongoose、Sequelize 等 ORM 库连接 MongoDB、MySQL 等数据库。设置环境变量:使用.env文件和dotenv包来管理环境变量。通过以上步骤,你已经在 VSCode 中成功初始化了一个 Express 项目。提供了一种快速且简便的方法来搭建项目结构,使你可以专注于编写业务逻辑。

YABO0812的博客 1216
上一篇: Django在网页中调用python小程序
下一篇: [译]使用YUI 3开发Web应用的诀窍
Vivian_Chang
博客等级 码龄14年 2粉丝 1原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值