node.js工程的结构
一、app.js 工程的入口。
/*** Module dependencies.*/
/*引用模块*/
var express = require('express'), routes = require('./routes'), user = require('./routes/user'), http = require('http'), util=require('util'), path = require('path'),engine=require('./system');
/*实例化express对象*/
var app = express();/*配置app的参数和启用中间件*/
app.configure(function(){app.set('port', process.env.PORT || 3000);//告诉我们的页面模版目录app.set('views', __dirname + '/views');//告诉它我们使用那种模版引擎app.set('view engine', 'ejs');app.use(express.favicon());app.use(express.logger('dev'));app.use(express.bodyParser());app.use(express.methodOverride());app.use(app.router);app.use(express.static(path.join(__dirname, 'public')));
});//配置开发模式
app.configure('development', function(){app.use(express.errorHandler());
});
//指定路由控制
app.get('/', routes.index);
app.get('/pcat', routes.pcat);
app.get('/user/:username',function(req,res){res.send("user :"+req.params.username);});app.get('/users', user.list);
app.all('/test/:username',function(req,res,next){console.log("all methods is call");//我们在这里验证用户名是否存在。//如果存在直接send或者调用next(new Error('用户已经存在'));//如果不存在我们调用next()把控制权交给下一个路由规则next();res.send('all的路由规则完毕。')
});app.get('/test/:username',function(req,res){res.send("user:"+req.params.username)
})
app.get('/abc',routes.pcat)
//改造ejs引擎中的方法
app.engine('ejs', engine);
//将layout的模版布局模版设置为默认
app.locals._layoutFile='layout'
//片段视图
app.get('/list',function(req,res){res.render('list',{title:'片段视图',items:['marico',1991,'pcat']})
});
//视图助手
app.locals({inspect:function(obj){return util.inspect(obj,true)+" 解析成功";}
})
app.get('/view',function(req,res){res.locals({headers:function(req,res){return req.headers;}})res.render('view',{title:"PCAT"});
})
//创建服务并监听端口
http.createServer(app).listen(app.get('port'), function(){console.log("Express server listening on port " + app.get('port'));
});
1.我们导入了express模块,前面我们通过npm install依赖上了,在这里就可以直接通过require获取、
2.routes是一个文件夹形式的本地模块,即./routes/index.js,他的功能是为指定的路径组织返回内容,相对于mvc架构中的控制器。
3.app.set是Express的参数设置工具,接受一个键(key)和一个值(value),可以用的参数如下:
4.Express依赖于connect,connect更加短小精悍,是一个偏向基础设施的框架,提供了大量的中间件,可以通过app.use启用。
5.app.get('/',routes.index),是一个路由控制器,用户如果访问'/'路径,则routes.index来控制。
6.通过express.createServer()函数创建一个应用的实例
二、routes/index.js是路由文件,相当于控制器,用于组织展示的内容。
node.js工程的结构相关推荐
- 【个人笔记】《知了堂》node.js简介及创建应用
Node.js 究竟是什么? Node 是一个服务器端 JavaScript 解释器,它将改变服务器应该如何工作的概念.它的目标是帮助程序员构建高度可伸缩的应用程序,编写能够处理数万条同时连接到一个( ...
- Node.js 学习(持续更新)
JavaWeb前端 Node.js nodejs操作入门 //helloworldjs //类似于:System.out.printIn("Hello world") consol ...
- Node.js使用ffi-napi,ref-array-napi,ref-struct-napi调用动态库
0x01 概述 使用electron开进行桌面程序的开发,似乎成了WEB前端开发人员转桌面程序开发的首选.近期有一些使用在electron中使用加密锁的需求,学习了一下在Node.js中通过ffi-n ...
- 开发笔记13 | 部署 Node.js 应用程序到云 ECS
<<系列文章集 前言 在之前的一篇文章中,我们介绍了 如何将一个本地的 Java 应用程序直接部署到阿里云 ECS ,有不少读者反馈,在本文中,我们来介绍如何部署 Node.js 应用程序 ...
- 怎么在vue的@click里面直接写js_【转】为 Node.js 贡献你的力量 ———— 调试代码
原文作者:百万扩散性甜面包 himself65 原文链接: 为 Node.js 贡献你的力量 ---- 调试代码www.himself65.com Node.js 作为一个世界级的项目,能为它贡献源 ...
- Node.js开发入门(一)——安装Node.js及编辑器配置
Node.js是一个轻松构建快速,可扩展的网络应用平台建立在Chrome的JavaScript运行.Node.js使用事件驱动,非阻塞I/O模型,使得它重量轻,高效,完美的数据密集型实时应用程序运行在 ...
- 使用 node.js 进行服务器端 JavaScript 编程
node.js 是一个可以使用 JavaScript 开发服务器端应用的平台.它依托于 Google V8 JavaScript 引擎,并采用事件 I/O 的架构,可以用来创建高性能服务器.本文详细介 ...
- Visual Studio的Node.js插件:NTVS 1.0正式发布
NTVS是Node.js Tools for Visual Studio的缩写,它是Visual Studio 2012 和 Visual Studio 2013 为Node.js开发提供的一款免费. ...
- [推荐] 一个 Node.js 技术选型案例:使用 CARMEN 作为卡牌手游技术栈
作者 @超人张宝胜 ,原文地址:https://zhuanlan.zhihu.com/p/103724412,如需转载请联系作者授权. 前言 本文介绍了在资金.人员.时间上全面告急.云服务提供商不确定 ...
最新文章
- 三星 arm9 linux,基于arm9内核三星s3c2410平台下linux四键按键驱动程序
- Spring为什么建议构造器注入?
- js对当前时间的相关操作
- Leetcode 147.对链表进行排序
- Android 源代码中的res
- 记录 || 雨后王母山仙境
- 网站服务器变更ip后更新域名,服务器变更后域名需要重新备案吗
- 世界读书日送你畅销好书!前所未有4折购书福利
- 云天励飞在科创板获准注册:计划募资30亿元,陈宁为实际控制人
- 数据结构与算法——23. 用嵌套列表与链表实现树结构
- RV1126RV1109 buildroot 增加串口屏测试
- 冗余系统研究:智能汽车的最后安全防线
- win10推送_微软 Win10 最稳版本 2004 正式版推送!最低配置要求汇总,全新 UI 虚拟桌面,支持几乎所有 CPU...
- 如何在 iOS、MacOS 上使用 ChatGPT 和适用于 iPhone 的最佳 ChatGPT 应用程序
- The Lastest Time
- 一套键盘如何控制多台电脑?
- 小米手机 开发app python_python之小米应用商店搜索
- 2018/11/30 快手面试总结
- Flash 与课件制作:加载图片
- Android开发:集成dropbox网盘功能
热门文章
- AndroidManifest.xml详解
- 计算机版初中语文课文原文,《背影》课文原文
- python 如何判断一个函数执行完成_Python 函数为什么会默认返回 None?
- 笔记本计算机无法开机怎么办,笔记本开机没反应,教您笔记本电脑开不了机怎么处理...
- linux下c标准库位置,C 标准库 IO 使用详解
- java线程唤醒与等待_Java线程的等待与唤醒
- python有序队列_【Python】:拓展Queue实现有序不重复队列
- lisp获取图名_cadlisp获取当前视图坐标
- c++ 使用nacos_为什么选用Nacos?虎牙直播微服务改造实践
- 企业微信加密消息体_用企业微信小程序发送消息