【node.js】基础<一>
node.js 下载地址:https://nodejs.org/
从 一个简单的博客开始。
安装express
1. npm install -g express
出现这个:
npm ERR! install Couldn't read dependencies npm ERR! Darwin 14.3.0 npm ERR! argv "node" "/usr/local/bin/npm" "insta" npm ERR! node v0.12.4 npm ERR! npm v2.10.1 npm ERR! path /Users/goyoo/package.json npm ERR! code ENOPACKAGEJSON npm ERR! errno -2 npm ERR! package.json ENOENT, open '/Users/goyoo/package.json' npm ERR! package.json This is most likely not a problem with npm itself. npm ERR! package.json npm can't find a package.json file in your current directory. npm ERR! Please include the following file with any support request: npm ERR! /Users/goyoo/npm-debug.log ➜ ~ git:(master) ✗ ➜ ~ git:(master) ✗ npm install - g express npm ERR! addLocal Could not install /Users/goyoo/- npm ERR! Darwin 14.3.0 npm ERR! argv "node" "/usr/local/bin/npm" "install" "-" "g" "express" npm ERR! node v0.12.4 npm ERR! npm v2.10.1 npm ERR! path /Users/goyoo/- npm ERR! code ENOENT npm ERR! errno -2 npm ERR! enoent ENOENT, open '/Users/goyoo/-' npm ERR! enoent This is most likely not a problem with npm itself npm ERR! enoent and is related to npm not being able to find a file. npm ERR! enoent npm ERR! Please include the following file with any support request: npm ERR! /Users/goyoo/npm-debug.log
新手我是切换到系统根目录下 才可以。
npm install -g express
➜ / npm install -g express express@4.13.0 /usr/local/lib/node_modules/express ├── merge-descriptors@1.0.0 ├── utils-merge@1.0.0 ├── cookie-signature@1.0.6 ├── methods@1.1.1 ├── range-parser@1.0.2 ├── escape-html@1.0.2 ├── array-flatten@1.1.0 ├── cookie@0.1.3 ├── content-type@1.0.1 ├── vary@1.0.0 ├── parseurl@1.3.0 ├── fresh@0.3.0 ├── path-to-regexp@0.1.6 ├── etag@1.7.0 ├── content-disposition@0.5.0 ├── serve-static@1.10.0 ├── depd@1.0.1 ├── qs@2.4.2 ├── proxy-addr@1.0.8 (forwarded@0.1.0, ipaddr.js@1.0.1) ├── finalhandler@0.4.0 (unpipe@1.0.0) ├── debug@2.2.0 (ms@0.7.1) ├── on-finished@2.3.0 (ee-first@1.1.1) ├── type-is@1.6.4 (media-typer@0.3.0, mime-types@2.1.2) ├── accepts@1.2.10 (negotiator@0.5.3, mime-types@2.1.2) └── send@0.13.0 (destroy@1.0.3, ms@0.7.1, statuses@1.2.1, mime@1.3.4, http-errors@1.3.1)
接着下一步:npm install -g express-generator
➜ / npm install -g express-generator /usr/local/bin/express -> /usr/local/lib/node_modules/express-generator/bin/express express-generator@4.12.4 /usr/local/lib/node_modules/express-generator ├── sorted-object@1.0.0 ├── commander@2.6.0 └── mkdirp@0.5.0 (minimist@0.0.8)
express -e blog
➜ ~ git:(master) ✗ cd Desktop ➜ Desktop git:(master) ✗ express -e blog create : blog create : blog/package.json create : blog/app.js create : blog/public create : blog/public/javascripts create : blog/public/images create : blog/public/stylesheets create : blog/public/stylesheets/style.css create : blog/routes create : blog/routes/index.js create : blog/routes/users.js create : blog/views create : blog/views/index.ejs create : blog/views/error.ejs create : blog/bin create : blog/bin/www install dependencies: $ cd blog && npm install run the app: $ DEBUG=blog:* npm start
cd blog && npm install
➜ Desktop git:(master) ✗ cd blog && npm install | ejs@2.3.2 node_modules/ejs debug@2.2.0 node_modules/debug └── ms@0.7.1 serve-favicon@2.2.1 node_modules/serve-favicon ├── fresh@0.2.4 ├── ms@0.7.1 ├── parseurl@1.3.0 └── etag@1.6.0 (crc@3.2.1) cookie-parser@1.3.5 node_modules/cookie-parser ├── cookie@0.1.3 └── cookie-signature@1.0.6 morgan@1.5.3 node_modules/morgan ├── basic-auth@1.0.2 ├── depd@1.0.1 └── on-finished@2.2.1 (ee-first@1.1.0) body-parser@1.12.4 node_modules/body-parser ├── content-type@1.0.1 ├── bytes@1.0.0 ├── depd@1.0.1 ├── qs@2.4.2 ├── iconv-lite@0.4.8 ├── on-finished@2.2.1 (ee-first@1.1.0) ├── raw-body@2.0.2 (bytes@2.1.0) └── type-is@1.6.4 (media-typer@0.3.0, mime-types@2.1.2) express@4.12.4 node_modules/express ├── merge-descriptors@1.0.0 ├── cookie-signature@1.0.6 ├── methods@1.1.1 ├── utils-merge@1.0.0 ├── fresh@0.2.4 ├── cookie@0.1.2 ├── range-parser@1.0.2 ├── escape-html@1.0.1 ├── content-type@1.0.1 ├── finalhandler@0.3.6 ├── vary@1.0.0 ├── parseurl@1.3.0 ├── serve-static@1.9.3 ├── content-disposition@0.5.0 ├── path-to-regexp@0.1.3 ├── depd@1.0.1 ├── qs@2.4.2 ├── on-finished@2.2.1 (ee-first@1.1.0) ├── etag@1.6.0 (crc@3.2.1) ├── proxy-addr@1.0.8 (forwarded@0.1.0, ipaddr.js@1.0.1) ├── accepts@1.2.10 (negotiator@0.5.3, mime-types@2.1.2) ├── type-is@1.6.4 (media-typer@0.3.0, mime-types@2.1.2) └── send@0.12.3 (destroy@1.0.3, ms@0.7.1, mime@1.3.4)
➜ blog git:(master) ✗ DEBUG=blog:* npm start > blog@0.0.0 start /Users/goyoo/Desktop/blog > node ./bin/www blog:server Listening on port 3000 +0ms