前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >安装express

安装express

作者头像
零月
发布2018-04-25 16:25:54
1.7K0
发布2018-04-25 16:25:54
举报
文章被收录于专栏:从零开始的linux

安装express

代码语言:javascript
复制
[root@alex ~]#yum -y install npm
[root@alex example]# yum install nodejs
[root@alex ~]# node -v
v5.5.0
[root@alex ~]# mkdir example
[root@alex ~]# cd example/
[root@alex example]# npm init
This utility will walk you through creating a package.json file.
It only covers the most common items, and tries to guess sensible defaults.

See `npm help json` for definitive documentation on these fields
and exactly what they do.

Use `npm install <pkg> --save` afterwards to install a package and
save it as a dependency in the package.json file.

Press ^C at any time to quit.
name: (example) 
version: (1.0.0) 
description: 
entry point: (index.js) 
test command: 
git repository: 
keywords: 
author: 
license: (ISC) 
About to write to /root/example/package.json:

{
  "name": "example",
  "version": "1.0.0",
  "description": "",
  "main": "index.js",
  "scripts": {
    "test": "echo \"Error: no test specified\" && exit 1"
  },
  "author": "",
  "license": "ISC"
}


Is this ok? (yes) 
[root@alex example]# ll
total 4
-rw-r--r-- 1 root root 203 Feb 26 02:17 package.json
[root@alex example]# npm install express --save
/*
* 提示:该行代码过长,系统自动注释不进行高亮。一键复制会移除系统注释 
* ▄ ╢░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░▄ ╢░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░▌ ╢░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░▀ ╢░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░▐ ╢░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░▄ ╢░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░loadRequestedDeps → fetch ▀ ╢████████████░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░loadRequestedDeps → netwo ▐ ╢████████████░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░loadRequestedDeps → fetch ▄ ╢████████████░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░loadRequestedDeps → netwo ▌ ╢████████████░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░loadRequestedDeps         ▐ ╢████████████░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░loadDep:vary → request    ▌ ╢████████████░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░loadDep:vary → request    ▌ ╢████████████░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░loadDep:vary → network    ▀ ╢████████████░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░loadDep:vary → 200        ▐ ╢████████████░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░loadDep:vary → resolveWit ▐ ╢████████████░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░loadDep:vary → addNamed   ▀ ╢████████████░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░loadDep:vary → get        ▌ ╢████████████░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░loadDep:vary → headers    ▌ ╢████████████░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░loadDep:vary → get        ▌ ╢████████████░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░loadDep:vary → fetch      ▀ ╢████████████░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░loadDep:vary → fetch      ▐ ╢████████████░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░loadDep:vary → addNameRan ▄ ╢████████████░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░loadDep:vary → afterAdd   ▀ ╢████████████░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░loadDep:vary → cache      ▀ ╢████████████░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░loadDep:vary → afterAdd   ▐ ╢████████████░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░loadDep:vary → afterAdd   ▀ ╢████████████░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░loadDep:vary → network    ▐ ╢████████████░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░loadDep:vary → afterAdd   ▐ ╢████████████░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░loadDep:vary → afterAdd   ▌ ╢████████████░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░loadDep:vary → fetchAndSh ▀ ╢████████████░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░loadDep:vary → network    ▄ ╢████████████░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░loadDep:vary → 200        ▌ ╢████████████░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░loadDep:vary → fetch      ▀ ╢████████████░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░loadDep:vary → network    ▐ ╢████████████░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░loadDep:vary → fetch      ▄ ╢████████████░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░loadDep:vary → afterAdd   ▀ ╢████████████░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░loadDep:vary → network    ▐ ╢████████████░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░loadDep:vary → fetch      ▄ ╢████████████░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░loadDep:negotiator → requ ▄ ╢████████████░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░loadDep:negotiator → 200  ▌ ╢████████████░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░loadDep:negotiator → fetc ▐ ╢████████████░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░loadDep:negotiator → fetc ▄ ╢████████████░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░loadDep:negotiator → afte ▐ ╢████████████░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░loadDep:negotiator → 200  ▄ ╢████████████░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░loadDep:negotiator → fetc ▄ ╢████████████░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░loadDep:negotiator → fetc ▌ ╢████████████░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░loadDep:negotiator → netw ▀ ╢████████████░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░loadDep:negotiator → netw ▐ ╢████████████░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░loadDep:negotiator → fetc ▄ ╢████████████░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░loadDep:mime-db → request ▀ ╢████████████░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░loadDep:mime-db → 200     ▐ ╢████████████░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░loadDep:mime-db → fetch   ▄ ╢████████████░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░loadDep:mime-db → network ▌ ╢████████████░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░loadDep:mime-db → fetch   ▀ ╢████████████░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░loadDep:mime-db → afterAd ▄ ╢████████████░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░loadDep:raw-body → reques ▄ ╢█████████████░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░loadDep:raw-body → networ ▌ ╢█████████████░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░loadDep:raw-body → fetch  ▄ ╢█████████████░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░loadDep:raw-body → networ ▌ ╢█████████████░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░loadDep:raw-body → fetch  ▀ ╢█████████████░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░loadDep:raw-body → networ ▐ ╢█████████████░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░loadDep:raw-body → afterA ▀ ╢█████████████░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░loadDep:raw-body → fetchA ▐ ╢█████████████░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░loadDep:ms → request      ▌ ╢█████████████░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░loadDep:ms → network      ▀ ╢█████████████░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░loadDep:ms → network      ▐ ╢█████████████░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░loadDep:ms → network      ▄ ╢█████████████░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░loadDep:ms → network      ▌ ╢█████████████░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░loadDep:ms → 200          ▀ ╢█████████████░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░loadDep:ms → fetch        ▀ ╢█████████████░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░loadDep:ms → fetch        ▐ ╢█████████████░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░loadDep:setprototypeof →  ▀ ╢█████████████░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░loadDep:setprototypeof →  ▐ ╢█████████████░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░loadDep:setprototypeof →  ▀ ╢█████████████░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░loadDep:setprototypeof →  ▐ ╢█████████████░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░loadDep:ee-first → reques ▀ ╢█████████████░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░loadDep:ee-first → 200    ▐ ╢█████████████░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░loadDep:ee-first → fetch  ▄ ╢█████████████░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░loadDep:ee-first → fetch  ▌ ╢█████████████░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░loadDep:unpipe → request  ▄ ╢█████████████░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░loadDep:unpipe → 200      ▌ ╢█████████████░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░loadDep:unpipe → fetch    ▌ ╢█████████████░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░loadDep:unpipe → fetch    ▀ ╢█████████████░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░loadDep:media-typer → req ▌ ╢█████████████░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░loadDep:media-typer → net ▀ ╢█████████████░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░loadDep:media-typer → fet ▐ ╢█████████████░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░loadDep:media-typer → fet ▄ ╢█████████████░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░loadDep:media-typer → net ▌ ╢█████████████░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░loadDep:media-typer → net ▀ ╢█████████████░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░loadDep:media-typer → fet ▐ ╢█████████████░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░loadDep:ipaddr.js → reque ▀ ╢██████████████████░░░░░░░░░░░░░░░░░░░░░loadDep:ipaddr.js → netwo ▐ ╢██████████████████░░░░░░░░░░░░░░░░░░░░░░loadDep:ipaddr.js → fetch ▌ ╢██████████████████░░░░░░░░░░░░░░░░░░░░░loadDep:ipaddr.js → netwo ▀ ╢██████████████████░░░░░░░░░░░░░░░░░░░░░loadDep:ipaddr.js → fetch ▐ ╢██████████████████░░░░░░░░░░░░░░░░░░░░░░loadDep:ipaddr.js → after ▌ ╢██████████████████░░░░░░░░░░░░░░░░░░░░░loadDep:ipaddr.js → fetch ▀ ╢██████████████████░░░░░░░░░░░░░░░░░░░░░loadDep:ipaddr.js → fetch ▐ ╢██████████████████░░░░░░░░░░░░░░░░░░░░░░loadDep:ipaddr.js → netwo ▄ ╢██████████████████░░░░░░░░░░░░░░░░░░░░░loadDep:forwarded         ▀ ╢██████████████████░░░░░░░░░░░░░░░░░░░░░░loadDep:mime → request    ▄ ╢████████████████████░░░░░░░░░░░░░░░░░loadDep:mime → 200        ▌ ╢████████████████████░░░░░░░░░░░░░░░░░loadDep:mime → fetch      ▐ ╢████████████████████░░░░░░░░░░░░░░░░░░loadDep:mime → fetch      ▄ ╢████████████████████░░░░░░░░░░░░░░░░░loadDep:mime → fetch      ▌ ╢████████████████████░░░░░░░░░░░░░░░░░loadDep:mime → network    ▄ ╢████████████████████░░░░░░░░░░░░░░░░░loadAllDepsIntoIdealTree  ▌ ╢█████████████████████████████extract                   ▀ ╢█████████████████████████████extract → unbuild         ▐ ╢█████████████████████████████extract → gunzTarPerm     ▐ ╢█████████████████████████████extract → gunzTarPerm     ▄ ╢████████████████████████████extract → gunzTarPerm     ▐ ╢█████████████████████████████extract → gunzTarPerm     ▄ ╢████████████████████████████extract → gunzTarPerm     ▌ ╢████████████████████████████extract:setprototypeof    ▐ ╢█████████████████████████████extract:ms → gunzTarPerm  ▀ ╢████████████████████████████extract:send → gunzTarPer ▄ ╢████████████████████████████extract:express           ▐ ╢█████████████████████████████preinstall → lifecycle    ▀ ╢████████████████████████████build                     ▄ ╢█████████████████████████████build:path-to-regexp → li ▀ ╢████████████████████████████install:etag → install    ▄ ╢████████████████████████████postinstall:setprototypeo ▌ ╢█████████████████████████████
*/
runTopLevelLifecycles     ▄ ╢█████████████████████████████
example@1.0.0 /root/example
└─┬ express@4.16.2 
  ├─┬ accepts@1.3.4 
  │ ├─┬ mime-types@2.1.18 
  │ │ └── mime-db@1.33.0 
  │ └── negotiator@0.6.1 
  ├── array-flatten@1.1.1 
  ├─┬ body-parser@1.18.2 
  │ ├── bytes@3.0.0 
  │ ├─┬ http-errors@1.6.2 
  │ │ ├── depd@1.1.1 
  │ │ ├── inherits@2.0.3 
  │ │ └── setprototypeof@1.0.3 
  │ ├── iconv-lite@0.4.19 
  │ └── raw-body@2.3.2 
  ├── content-disposition@0.5.2 
  ├── content-type@1.0.4 
  ├── cookie@0.3.1 
  ├── cookie-signature@1.0.6 
  ├─┬ debug@2.6.9 
  │ └── ms@2.0.0 
  ├── depd@1.1.2 
  ├── encodeurl@1.0.2 
  ├── escape-html@1.0.3 
  ├── etag@1.8.1 
  ├─┬ finalhandler@1.1.0 
  │ └── unpipe@1.0.0 
  ├── fresh@0.5.2 
  ├── merge-descriptors@1.0.1 
  ├── methods@1.1.2 
  ├─┬ on-finished@2.3.0 
  │ └── ee-first@1.1.1 
  ├── parseurl@1.3.2 
  ├── path-to-regexp@0.1.7 
  ├─┬ proxy-addr@2.0.3 
  │ ├── forwarded@0.1.2 
  │ └── ipaddr.js@1.6.0 
  ├── qs@6.5.1 
  ├── range-parser@1.2.0 
  ├── safe-buffer@5.1.1 
  ├─┬ send@0.16.1 
  │ ├── destroy@1.0.4 
  │ └── mime@1.4.1 
  ├── serve-static@1.13.1 
  ├── setprototypeof@1.1.0 
  ├── statuses@1.3.1 
  ├─┬ type-is@1.6.16 
  │ └── media-typer@0.3.0 
  ├── utils-merge@1.0.1 
  └── vary@1.1.2 

runTopLevelLifecycles     ▄ ╢█████████████████████████████
npm WARN EPACKAGEJSON example@1.0.0 No description
runTopLevelLifecycles     ▌ ╢█████████████████████████████
npm WARN EPACKAGEJSON example@1.0.0 No repository field.
runTopLevelLifecycles     ▀ ╢█████████████████████████████
[root@alex example]# ll
total 8
drwxr-xr-x 50 root root 4096 Feb 26 02:18 node_modules
-rw-r--r--  1 root root  253 Feb 26 02:18 package.json
[root@alex example]# vim index.js
var express = require('express');
var app = express();

app.get('', function(req, res){
    res.send('Hello');
});

var server = app.listen(2000, function(){
    var host = server.address().address;
    var port = server.address().port;
    console.log('Example listening at http://%s:%s', host, port);
});
[root@alex example]# node
node                             node_version_has_solaris_binary
[root@alex example]# node index.js 
Example listening at http://:::2000
本文参与 腾讯云自媒体同步曝光计划,分享自微信公众号。
原始发表:2018-02-26,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 从零开始的linux 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 安装express
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档