Node Js 建立项目和调试
来源:互联网 发布:钟无艳国语网络歌手 编辑:程序博客网 时间:2024/06/01 18:16
- 引入 required 模块:我们可以使用 require 指令来载入 Node.js 模块。
- 创建服务器:服务器可以监听客户端的请求,类似于 Apache 、Nginx 等 HTTP 服务器。
- 接收请求与响应请求 服务器很容易创建,客户端可以使用浏览器或终端发送 HTTP 请求,服务器接收请求后返回响应数据。
以上代码我们完成了一个可以工作的 HTTP 服务器。
使用 node 命令执行以上的代码:
liuMacBook-Pro:NodeJS hezi$ cd example/liuMacBook-Pro:example hezi$ node example.js服务器运行在 http://127.0.0.1:3000/
NPM使用(国内镜像cnpm使用,速度要快很多)
$ npm install -g cnpm --registry=https://registry.npm.taobao.orgalias cnpm="npm --registry=https://registry.npm.taobao.org \--cache=$HOME/.npm/.cache/cnpm \--disturl=https://npm.taobao.org/dist \--userconfig=$HOME/.cnpmrc"# Or alias it in .bashrc or .zshrc$ echo '\n#alias for cnpm\nalias cnpm="npm --registry=https://registry.npm.taobao.org \ --cache=$HOME/.npm/.cache/cnpm \ --disturl=https://npm.taobao.org/dist \ --userconfig=$HOME/.cnpmrc"' >> ~/.zshrc && source ~/.zshrc
NPM是随同NodeJS一起安装的包管理工具,能解决NodeJS代码部署上的很多问题,常见的使用场景有以下几种:
* 允许用户从NPM服务器下载别人编写的第三方包到本地使用。
* 允许用户从NPM服务器下载并安装别人编写的命令行程序到本地使用。
* 允许用户将自己编写的包或命令行程序上传到NPM服务器供别人使用。
如果你安装的是旧版本的 npm,可以很容易得通过 npm 命令来升级,命令如下:
$ sudo npm install npm -g/usr/local/bin/npm -> /usr/local/lib/node_modules/npm/bin/npm-cli.jsnpm@2.14.2 /usr/local/lib/node_modules/npm
使用淘宝镜像的命令:cnpm install npm -g
全局安装与本地安装
npm 的包安装分为本地安装(local)、全局安装(global)两种,从敲的命令行来看,差别只是有没有-g而已,比如
npm install express # 本地安装npm install express -g # 全局安装
更新模块
$ npm update express
搜索模块
$ npm search express
REPL 命令
ctrl + c - 退出当前终端。ctrl + c 按下两次 - 退出 Node REPL。ctrl + d - 退出 Node REPL.向上/向下 键 - 查看输入的历史命令tab 键 - 列出当前命令.help - 列出使用命令.break - 退出多行表达式.clear - 退出多行表达式.save filename - 保存当前的 Node REPL 会话到指定文件.load filename - 载入当前 Node REPL 会话的文件内容。
Express 使用
下面一段是取自官网的例子:
Express application generator
Use the application generator tool, express-generator, to quickly create an application skeleton.
使用自动构建工具,express-generator 可以快速的建立项目
The express-generator package installs the express command-line tool. Use the following command to do so:
执行命令如下:
$ npm install express-generator -g
Display the command options with the -h option:
查看参数命令:
$ express -h
Usage: express [options] [dir]
Options:
-h, --help output usage information --version output the version number -e, --ejs add ejs engine support --hbs add handlebars engine support --pug add pug engine support -H, --hogan add hogan.js engine support -v, --view <engine> add view <engine> support (ejs|hbs|hjs|jade|pug|twig|vash) (defaults to jade) -c, --css <engine> add stylesheet <engine> support (less|stylus|compass|sass) (defaults to plain css) --git add .gitignore -f, --force force on non-empty directory
For example, the following creates an Express app named myapp. The app will be created in a folder named myapp in the current working directory and the view engine will be set to Pug:
创建一个myapp的项目:
$ express --view=pug myapp
// 模板是ejs,默认的是jadeexpress -t ejs microblog
输出信息:
create : myapp create : myapp/package.json create : myapp/app.js create : myapp/public create : myapp/public/javascripts create : myapp/public/images create : myapp/routes create : myapp/routes/index.js create : myapp/routes/users.js create : myapp/public/stylesheets create : myapp/public/stylesheets/style.css create : myapp/views create : myapp/views/index.pug create : myapp/views/layout.pug create : myapp/views/error.pug create : myapp/bin create : myapp/bin/wwwThen install dependencies:
$ cd myapp$ npm install
On MacOS or Linux, run the app with this command:
Mac和Linux用户可以执行如下命令:
$ DEBUG=myapp:* npm start
On Windows, use this command:
Windows可以用如下命令:
> set DEBUG=myapp:* & npm start
Then load http://localhost:3000/ in your browser to access the app.
在浏览器里输入http://localhost:3000/访问该项目。
The generated app has the following directory structure:
生成的结构如下:
.├── app.js├── bin│ └── www├── package.json├── public│ ├── images│ ├── javascripts│ └── stylesheets│ └── style.css├── routes│ ├── index.js│ └── users.js└── views ├── error.pug ├── index.pug └── layout.pug7 directories, 9 files
使用Express
$ npm install -g supervisor
安装 supervisor 。使用 supervisor 命令启动 app.js:
$ supervisor app
中间遇到的一些问题:
引用中间是有先后顺序的
1、express4.x connect-flash出错
var settings = require('./settings'); //配置信息 var flash = require('connect-flash'); var session = require('express-session'); app.use(session({ secret: settings.cookieSecret, //加密 key: settings.db, //cookie nam cookie: {maxAge: 60000}, resave: false, saveUninitialized: true, })); app.use(flash()); // set flash app.use(function (req, res, next) { res.locals.errors = req.flash('error'); res.locals.infos = req.flash('info'); next(); });
connect-flash 要用到 session,所以在用 app.use(flash()); 要先引入
app.use(session({ secret: settings.cookieSecret, //加密 key: settings.db, //cookie nam cookie: {maxAge: 60000}, resave: false, saveUninitialized: true,}));
之后要想输出req.flash信息
app.use(function (req, res, next) { res.locals.errors = req.flash('error'); res.locals.infos = req.flash('info'); next(); });
在要输出的地方
2、express-session 和 connect-mongo
secret 用来防止篡改 cookie,key 的值为 cookie 的名字,通过设置 cookie 的 maxAge 值设定 cookie 的生存期,这里我们设置 cookie 的生存期为 30 天,设置它的 store 参数为 MongoStore 实例,把会话信息存储到数据库中,以避免丢失。在后面的小节中,我们可以通过 req.session 获取当前用户的会话对象,获取用户的相关信息。
app.use(session({ secret: settings.cookieSecret, key: settings.db,//cookie name cookie: {maxAge: 1000 * 60 * 60 * 24 * 30},//30 days store: new MongoStore({ url: 'mongodb://localhost/blog' //db: settings.db, //host: settings.host, //port: settings.port }) }));
3、POST请求之后,取不到前端的数据
body-parser这个中间件
app.use(bodyParser.json());app.use(bodyParser.urlencoded({ extended: false }));
这两行配置代码写在路由配置之前,例如
var bodyParser = require('body-parser');var app = express();app.use(bodyParser.json()); //中间件app.use(bodyParser.urlencoded({ extended: false })); //中间件//以下为路由配置var routes = require('./routes/index');var users = require('./routes/users');...other code...
调试nodejs
则可通过下述命令打开调试信息:
DEBUG=sample-app node ./bin/www
可通过逗号隔开的名字列表来指定多个调试命名空间,如下所示:
$ DEBUG=http,mail,express:* node index.js
// npm安装目录/usr/local/lib/node_modules
安装调试工具
全局安装 node-inspector
sudo npm install -g node-inspector
第二步: 输入如下指令启动项目
node --debug www
第三步
node-inspector
第四步: 选择一款支持 node-inspector 的浏览器,你可以选择 chrome 或者 firefox
- Node Js 建立项目和调试
- node.js包管理器和代码调试
- Node.js笔记(一)项目的建立
- 使用Node.js的express框架建立项目
- 使用node-inspector调试和建立http服务器
- node.js 调试工具
- node js调试:
- node.js调试
- Node.js的调试
- Node.js调试技巧
- node.js调试
- node.js调试
- node.js调试
- Node.js的调试
- node.js调试
- Node.js调试命令
- node.js debug调试
- node js 调试
- Axure8.0基础教程(1-10)AxureRP8实战手册
- CloseableHttpClient 设置授权信息
- javascript学习(十二)— 箭头函数
- javafx——内存占用过大问题
- I NEED A OFFER!
- Node Js 建立项目和调试
- C#分解质因数
- GraphQL学习笔记(GraphQL + Spring boot demo) part 1
- 浅谈c++继承与对象模型
- Android面试(四)内存优化一
- 详解 Vue 2.4.0 带来的 4 个重大变化
- 做人资OA产品过程中经历的坑【链家篇】
- 上传base64格式图片, Illegal base64 character 20
- iOS之来电阻止与身份识别实现