Skip to content

Navigation Menu

Sign in
Appearance settings

Search code, repositories, users, issues, pull requests...

Provide feedback

We read every piece of feedback, and take your input very seriously.

Saved searches

Use saved searches to filter your results more quickly

Sign up
Appearance settings

WebLss/Node-blog

Repository files navigation

使用express-generator

部署该项目需要nodemon 的安装:

 npm install -g nodemon

安装session-mongoose依赖库 npm install session-mongoose

~ express -h # 检查看express的帮助命令 Usage: express [options] [dir] Options: -h, --help output usage information -V, --version output the version number -e, --ejs add ejs engine support (defaults to jade) --hbs add handlebars engine support -H, --hogan add hogan.js engine support -c, --css add stylesheet support (less|stylus|compass) (defaults to plain css) --git add .gitignore -f, --force force on non-empty directory

express -e nodejs-demo # 创建项目 install dependencies: $ cd nodejs-demo && npm install run the app: $ DEBUG=nodejs-demo:* ./bin/www

 启动项目npm start

查看本地bower已经缓存的类库 bower cache list Commands,列出了bower支持的各种命令。

cache:bower缓存管理 help:显示Bower命令的帮助信息 home:通过浏览器打开一个包的github发布页 info:查看包的信息 init:创建bower.json文件 install:安装包到项目 link:在本地bower库建立一个项目链接 list:列出项目已安装的包 lookup:根据包名查询包的URL prune:删除项目无关的包 register:注册一个包 search:搜索包 update:更新项目的包 uninstall:删除项目的包

mongodb: D:\Program Files\MongoDB\Server3円.4\bin>mongod --dbpath "D:\mongodb\data\db" 启动mongodb

小结一下,往后要重新启动 mongodb 服务、进入 mongodb 命令行的操作: 在一个iTerm2窗口执行:mongod //MongoDB starting........waiting for connections 另一个iTerm2窗口执行:mongo //MongoDB shell

mongolass: https://github.com/WebLss/mongolass

->package.json 小提示: npm i 是 npm install 的简写,建议使用 npm i。

直接使用 npm i 安装的模块是不会写入 package.json 的 dependencies (或 devDependencies),需要额外加个参数:

npm i express --save/npm i express -S (安装 express,同时将 "express": "^4.14.0" 写入 dependencies ) npm i express --save-dev/npm i express -D (安装 express,同时将 "express": "^4.14.0" 写入 devDependencies ) npm i express --save --save-exact (安装 express,同时将 "express": "4.14.0" 写入 dependencies ) 第三种方式将固定版本号写入 dependencies,建议线上的 Node.js 应用都采取这种锁定版本号的方式,因为你不可能保证第三方模块下个小版本是没有验证 bug 的, 即使是很流行的模块。拿 Mongoose 来说,Mongoose 4.1.4 引入了一个 bug 导致调用一个文档 entry 的 remove 会删除整个集合的文档, 见:https://github.com/Automattic/mongoose/blob/master/History.md#415--2015年09月01日。 后面会介绍更安全的 npm shrinkwrap 的用法。

运行以下命令:

npm config set save-exact true 这样每次 npm i xxx --save 的时候会锁定依赖的版本号,相当于加了 --save-exact 参数。

小提示:npm config set 命令将配置写到了 ~/.npmrc 文件,运行 npm config list 查看。

2.6.4 npm shrinkwrap 前面说过要锁定依赖的版本,但这并不能完全防止意外情况的发生,因为锁定的只是最外一层的依赖,而里层依赖的模块的 package.json 有可能写的是 "mongoose": "*"。 为了彻底锁定依赖的版本,让你的应用在任何机器上安装的都是同样版本的模块(不管嵌套多少层), 通过运行 npm shrinkwrap,会在当前目录下产生一个 npm-shrinkwrap.json,里面包含了通过 node_modules 计算出的模块的依赖树及版本。 上面的截图也显示:只要目录下有 npm-shrinkwrap.json 则运行 npm install 的时候会优先使用 npm-shrinkwrap.json 进行安装,没有则使用 package.json 进行安装。

更多阅读:

https://docs.npmjs.com/cli/shrinkwrap http://tech.meituan.com/npm-shrinkwrap.html

对应模块的用处:

express: web 框架 express-session: session 中间件 connect-mongo: 将 session 存储于 mongodb,结合 express-session 使用 connect-flash: 页面通知的中间件,基于 session 实现 ejs: 模板 express-formidable: 接收表单及文件上传的中间件 config-lite: 读取配置文件 marked: markdown 解析 moment: 时间格式化 mongolass: mongodb 驱动 objectid-to-timestamp: 根据 ObjectId 生成时间戳 sha1: sha1 加密,用于密码加密 winston: 日志 express-winston: express 的 winston 日志中间件

ESLint ESLint 是一个代码规范和语法错误检查工具。使用 ESLint 可以规范我们的代码书写,可以在编写代码期间就能发现一些低级错误。

ESLint 需要结合编辑器或 IDE 使用,如: 可以配置eslint啦(削除) npm install -g eslint npm install -g install-peerdepsinstall-peerdeps --dev eslint-config-airbnb 复制代码注意啦,首次一定要是全局安装,全局安装,全部全局安装,重要的事情说山遍 (削除ここまで)初始化一下吧eslint --init 复制代码根据自己的项目需求配置,我这里选择的标准是Airbnb标准。在use arrow keys的时候,有些是看不到箭头的移动,但是已经选择了,所以选择哪呢,就按上下键+enter就好,反正我的是看不见,也能选上。

Sublime Text 需要装两个插件:SublimeLinter + SublimeLinter-contrib-eslint VS Code 需要装一个插件:ESLint 小提示:Sublime Text 安装插件通过 ctrl+shift+p 调出 Package Control,输入 install 选择 Install Package 回车。输入对应插件名搜索,回车安装。 小提示:VS Code 安装插件需要点击左侧『扩展』页

全局安装 eslint:

npm i eslint -g 运行:

eslint --init

config-lite config-lite 是一个轻量的读取配置文件的模块。config-lite 会根据环境变量(NODE_ENV)的不同加载 config 目录下不同的配置文件。如果不设置 NODE_ENV,则读取默认的 default 配置文件,如果设置了 NODE_ENV,则会合并指定的配置文件和 default 配置文件作为配置,config-lite 支持 .js、.json、.node、.yml、.yaml 后缀的文件。 如果程序以 NODE_ENV=test node app 启动,则 config-lite 会依次降级查找 config/test.js、config/test.json、config/test.node、config/test.yml、config/test.yaml 并合并 default 配置; 如果程序以 NODE_ENV=production node app 启动,则 config-lite 会依次降级查找 config/production.js、config/production.json、config/production.node、config/production.yml、config/production.yaml 并合并 default 配置。 config-lite 还支持冒泡查找配置,即从传入的路径开始,从该目录不断往上一级目录查找 config 目录,直到找到或者到达根目录为止。

npm shrinkwrap 强制相应版本依赖

mongodb: brew services start mongodb ---启动 brew services stop mongodb --停止 brew services restart mongodb --重启 或者 mongod --config /usr/local/etc/mongod.conf --启动

SET NODE_ENV =development

use admin, db.shutdownServer() --关闭

//在 Chrome 54-55、Firefox 49-50、IE 11、Edge 14、Safari 9-10、Node.js 6-7 和 PhantomJS 2.1.1 上通过测试。 Automated browser & CI test runs are available. https://www.lodashjs.com/ 是一个一致性、模块化、高性能的 JavaScript 实用工具库。

https://www.npmjs.com/package/loader 上文没有提及的重要值是assetsMap,这个值需要通过构建产生,类似如下格式:

{ "/assets/index.min.js":"/assets/index.min.ecf8427e.js", "/assets/index.min.css":"/assets/index.min.f2fdeab1.css" } 如果需要线上执行,需要该对象的传入。而该对象需要通过以下构建脚本(loader-builder)来生成:

$ builder <views_dir> <output_dir> $ # 或者 $ ./node_modules/loader-builder/bin/builder <views_dir> <output_dir> 以上脚本将会遍历视图目录中寻找Loader().js().css().done()这样的标记,然后得到合并文件与实际文件的关系。 如以上的assets/index.min.js文件并不一定需要真正存在,进行扫描构建后,会将相关的js文件进行编译和合并为一个文件。 并且根据文件内容进行md5取hash值,最终生成/assets/index.min.ecf8427e.js这样的文件。

http://www.ptbird.cn/node-js-svg-captcha.html

About

No description, website, or topics provided.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

Contributors

AltStyle によって変換されたページ (->オリジナル) /