手动创建一个Express.js的应用可大致分为以下步骤:

1.创建文件夹

  a. 创建一个项目根文件夹,如helloWord

  b.在项目的根目录下创建项目的目录结构,依次创建{public,public/css,public/img,public/js,db,views,views/includes,routes}

  可使用命令:

mkdir  {public,public/css,public/img,public/js,db,views,views/includes,routes}

2.NPM初始化和配置package.json

  a.进入控制台,进入项目的根目录

  b.输入命令:npm init ,然后输入相关的一些参数,name,version,等可参考下面的package.json 文件

  c.使用命令:npm install express@4.1.2 --save

3.依赖声明

由于express.js是约定优于配置,也可直接在package.json中输入如下内容,然后运行npm install即可

{
"name": "helloworld",
"version": "0.0.1",
"description": "\"\"",
"main": "app.js",
"scripts": {
"start": "node app.js"
},
"author": "",
"license": "ISC",
"dependencies": {
"express": "4.1.2",
"jade":"1.3.1",
"mongoskin":"1.4.1",
"stylus":"0.44.0"
}
}

4.app.js项目启动文件配置

在根目录下创建项目起始文件app.js,打开app.js并编辑

对于app.js的配置文件主要涉及以下几个步骤:

   1)引入依赖,

//依赖引入
var express = require('express');
var http = require('http');
var path = require('path');

   2)设置相关配置

//实例化Express.js
var app = express();
//配置port、views、views engine
app.set('port',process.env.PORT || 3000);
app.set('views',path.join(__dirname,'views'));//这里的__dirname的下划线是两个英文下划线
app.set('view engine','jade');

   3)连接数据库(可选)

   4)定义中间件

   5)定义路由

//定义路由
app.all('/',function(req,res){
res.render('index',{msg:'Welcome to the practical Node.js!'});
});
app.get('/about',function(req,res){
res.end('about us');
});

   6)创建服务

//创建服务
http.createServer(app).listen(
app.get('port'),function (){
console.log('Express.js server listening on port '+app.get('port'));
}
);

开启服务之前,需要先在views文件夹中创建一个index.jade,代码如下:

h1 hello
p= msg

   7)开启服务

    在命令行输入:node app.js并在浏览器中输入http://localhost:3000/会得到:

在浏览器中输入http://localhost:3000/about会得到:

5.结合jade

6.运行项目

开启第一个Node.js的Express项目的更多相关文章

  1. Node.js基于Express框架搭建一个简单的注册登录Web功能

    这个小应用使用到了node.js  bootstrap  express  以及数据库的操作 :使用mongoose对象模型来操作 mongodb 如果没了解过的可以先去基本了解一下相关概念~ 首先注 ...

  2. 如何设计一个基于Node.js和Express的网站架构?

    前言 今年七月份,我和几个小伙伴们合伙建立了一个开发团队.业务开展如火如荼的同时,团队宣传就提上了日程,所以迫切需要搭建公司网站出来.确定目标后我们就开始考虑如果构建一个企业网站.先是进行业内调查,看 ...

  3. 如何快速搭建一个 Node.JS 项目并进入开发?

    了解:如何快速搭建一个项目并进入开发? 在此不概述 Node.JS 的历史以及发展过程. 因为之前接触过通过 Java 开发语言,所以明确地知道一个服务器所需的文件,以及一个服务器所需要的操作. 那么 ...

  4. Node.js、express、mongodb 入门(基于easyui datagrid增删改查)

    前言 从在本机(win8.1)环境安装相关环境到做完这个demo大概不到两周时间,刚开始只是在本机安装环境并没有敲个Demo,从周末开始断断续续的想写一个,按照惯性思维就写一个增删改查吧,一方面是体验 ...

  5. Node.js与Sails~项目结构与Mvc实现

    回到目录 Sails是一个Node.js的中间件架构,帮助我们很方便的构建WEB应用程序,网址:http://www.sailsjs.org/,它主要是在Express框架的基础上发展起来的,扩展了新 ...

  6. 运行第一个Node.js程序

    初学Node.js,萌新一枚.感觉Node.js挺不错的,从基础开始一步一步来,加油吧! 我们来使用Node.js的express来运行第一个程序helloworld: 在命令提示符键入express ...

  7. Node.js系列-express(上)

    前言 Node.js系列的第一篇:http,大概描述了通过使用node.js内置的api创建一个服务并监听request实现简单的增删改查.现在,我们就通过通读express官网及使用express框 ...

  8. node.js使用express框架进行文件上传

    关于node.js使用express框架进行文件上传,主要来自于最近对Settings-Sync插件做的研究.目前的研究算是取得的比较好的进展.Settings-Sync中通过快捷键上传文件,其实主要 ...

  9. Code Your First API With Node.js and Express: Set Up the Server

    How to Set Up an Express API Server in Node.js In the previous tutorial, we learned what the REST ar ...

随机推荐

  1. Java上传Excel并解析

    1.上传: public String uploadFile(CommonsMultipartFile file,String uploadPath,String realUploadPath){ I ...

  2. CSS 圣杯布局升级版---多个固定宽度一个自适应宽度

    1.一个div固定,一个div自适应宽度.两种情况,固定在左或者在右. HTML: <div class="box1"> <div class="mai ...

  3. Nginx下编译PHP+Mysql

    先说一下PHP在Apache和Nginx下所扮演的角色 apache一般是把php当做自己的一个模块来启动的. 而nginx则是把http请求变量(如get,user_agent等)转发给 php进程 ...

  4. window 环境变量保存位置在哪里?

    注册表-regedit.exe 用户变量: HKEY_CURRENT_USER\Environment 系统变量: HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSe ...

  5. 多key业务,数据库水平切分架构一次搞定

    数据库水平切分是一个很有意思的话题,不同业务类型,数据库水平切分的方法不同. 本篇将以"订单中心"为例,介绍"多key"类业务,随着数据量的逐步增大,数据库性能 ...

  6. python开发【第一篇】

    内容编码 python解释器在加载.py文件的时候,会对内容进行编码(默认是ascii编码). ASCII 是基于拉丁系统的一套电脑编码系统, 主要用于显示现代英语和其他西欧语言,其最多只能用8位来表 ...

  7. Sublime Text [Decode error - output not utf-8]

    改Sublime Text的python build的设置.将其编码设置为cp936. 打开Python.sublime-build文件,并添加”encoding”:”cp936″这一行,保存即可 S ...

  8. php面向对象学习笔记01-面向对象介绍、构造函数、析构函数

    偶尔翻看以前的笔记.就整理下.方便以后的查阅 类-成员属性 成员属性是从某个事务提取出来的, 可以是基本数据类型,也可以是复合数据类型(数组,对象) //创建一个类 class Cat{ pubic ...

  9. org.apache.jasper.JasperException: /pages/path.jsp

    1.错误描述 三月 15, 2015 8:56:37 下午 org.apache.jasper.compiler.TldLocationsCache tldScanJar 信息: At least o ...

  10. freemarker.template.TemplateException:Macro has no such argument:params

    1.错误描述 freemarker.template.TemplateException:Macro mainSelect has no such argument:params 2.错误原因 在宏定 ...