nodejs学习过程

一、安装nodejs

  1. 安装完成后,检查PATH环境变量是否配置了nodejs,  运行cmd,输入path,查看nodejs和npm是否配置。(参考菜教程)
  2. node -v ; npm -v 查看版本信息

、安装Express

  1. 安装express并将其保存到依赖列表

  npm install express -save;

  以上命令会将 Express 框架安装在当期目录的 node_modules 目录中, node_modules 目录下会自动创建 express 目录。 

  2. 在express4.0之后,还需要安装express-generator 来完成express项目的创建,

  执行命令 : npm install -g express-generator;

  3. 以下几个重要的模块是需要与 express 框架一起安装的:

  npm install body-parser --save
  npm install cookie-parser --save
  npm install multer --save

三、创建express项目

  1. cd 到项目目录

  2. 创建express项目;执行:express 项目名称

  (models是我自己新建的,想熟悉MVC)

  express app;目录如下:

    

  使用express app 默认使用的jade的模板引擎;

  如果使用ejs 加参数 -e ;  执行:express -e app

 

  3.cd到项目名称目录下,执行:npm install ;安装项目依赖,会在项目下生成node_modeles;

  (起初命令npm install并没有成功安装,cmd一直处在不停安装状态,在基友电脑安装成功,无解?node -v 和 npm -v检查的版本分别是5.X和4.X;无赖卸载重装,依赖安装成功,node -v 和 npm -v检查的版本分别是4.X和2.X;)

  4.执行命令:npm start;服务器运行,在浏览器运行URL:localhost:3000,即可看到默认的express页面。

  

  5. supervisor工具实现代码修改和自启动cd

  如果不想每次修改代码后,重启服务器,使用supervisor工具实现代码修改和自启动,安装supervisor命令如下:

1
npm install -g supervisor

  注意:必须全局安装,否则不可以使用supervisor命令。如果使用webstorm新建项目进行开发,步骤4可省略。

  重启服务器:将会不断检测程序是否有更新和重启服务器。

1
supervisor app.js

 

四、MongoDB

  1.安装在MongoDB目录 ,在MongoDB文件夹中创建一个 data 文件夹,再在 data 文件夹中创建 db 文件夹;

   创建一个 log文件夹,再在 log 文件夹中创建 log.txt; 

 

  2.cd 到 MongoDB安装目录下的bin目录下

  启动MongoDB

  

  

   注:我们上面在配置mongodb服务时并没有指定服务的端口号,所以会指定mongodb默认的端口号27017
  我们也可以在配置时指定端口。例:如果我们想指定mongodb的服务端口号为10001,命令如下:

  mongod --dbpath D:\Mongodb\data --port 10001  

  
  访问浏览器访问
  在浏览器输入: http://localhost:27017 可以看到如下提示:
  It looks like you are trying to access MongoDB over HTTP on the native driver port.
  如此,Mongodb数据库服务已经完全启动了。

  

3. 客户端连接数据库
  另开一个cmd窗口,原来的那个窗口不要关闭,如果窗口关闭则服务也关闭
  首先通过cd命令切换到Mongodb\bin目录下,然后通过mongo ip:port 命令来连接数据库
  ip代表我们需要访问的数据库服务的ip,port代表数据库服务的端口
  D:\Mongodb\bin>mongo 127.0.0.1:27017  
  如果我们在配置mongodb服务时使用的是默认的端口,那么我们在通过客户端访问时可以不用指定访问的ip和port
  D:\Mongodb\bin>mongo  
4.设计数据库
  mongo //进入数据库
  use helloworld //创建项目数据库
  db.addUser("shuaige", "123456") //给这个数据库创建了一个账号
  
  (!!!!报错!!!, db.addUser is not a function ;3.0后使用db.createUser方法如下)
  db.createUser(
     {
        user: "accountUser",
       pwd: "password",
       roles: [ "readWrite", "dbAdmin" ]
     }
  )
  

  然后,我们就为这个helloworld数据库创建collection(collection就相当于oracle和mysql里的table)
  db.createCollection("users") //创建一个集合,也就是表
  db.users.insert({userid: "admin", password: "123456"}) //给users里添加一个文档,也就是一条记录账号admin,密码123456
  ok,现在检查一下:
  db.users.find() //如果看到你刚刚添加的文档记录,就ok咯

  

  db.users.find().pretty();  pretty方法会格式化输出内容,添加换行缩进。

5.在views下添加页面
  看了下ejs和jade页面,感觉还是ejs更满足我的习惯,ejs和jsp很像。
  对比ejs和jade
  index.ejs :
  
 1 <!DOCTYPE html>
 2 <html>
 3   <head>
 4     <title><%= title %></title>
 5     <link rel='stylesheet' href='/stylesheets/style.css' />
 6   </head>
 7   <body>
 8     <h1><%= title %></h1>
 9     <p>Welcome to <%= title %></p>
10   </body>
11 </html>

   index.jade :

   

1 extends layout
2 
3 block content
4   h1= title
5   p Welcome to #{title}

 

(
  插曲: 错误:Cannot find module 'mongoose',解决:
  npm install mongoose --save
  This adds mongoose it to package.json which Heroku uses to build your app)
6.总结mongoDB数据库操作
  cd bin //进入bin目录
  mongo //进入数据库

  use dbName //创建项目数据库
  show dbs //查看所有数据库(MongoDB 中默认的数据库为 test,如果你没有创建新的数据库,集合将存放在 test 数据库中。)
  db   //查看当前数据库
  use dbName;  db.dropDatabase(); //删除数据库(没用use dbName,默认为 test)
  

  db.createUser("shuaige", "123456") //给这个数据库创建了一个账号
  然后,我们就为这个helloworld数据库创建collection(collection就相当于oracle和mysql里的table)
  db.createCollection("users") //创建一个集合,也就是表
  db.users.insert({userid: "admin", password: "123456",like:['song','book']}) //给users里添加一条记录,mongoDB会自动生成 _id

  db.users.remove()//删除


  db.users.find({"userid":"admin"}).pretty() //查询,and和or
  or:  find({$or: [{},{}]})
  and 和 or : find({"like": {$gt: 2} , $or: []})

  
  
 
 mongoDB条件符(放在一对括号里,如上)
  >  $gt
  < $it
  >= $gte
  <= $ite
  
  db.users.update({"userid": "admin"},{$set:{"password": "123123"})
  语法:
  db.collection.update(
     <query>,
     <update>,
     {
       upsert: <boolean>,
       multi: <boolean>,
       writeConcern: <document>
     }
  ) 
  • query : update的查询条件,类似sql update查询内where后面的。
  • update : update的对象和一些更新的操作符(如$,$inc...)等,也可以理解为sql update查询内set后面的
  • upsert : 可选,这个参数的意思是,如果不存在update的记录,是否插入objNew,true为插入,默认是false,不插入。
  • multi : 可选,mongodb 默认是false,只更新找到的第一条记录,如果这个参数为true,就把按条件查出来多条记录全部更新。
  • writeConcern :可选,抛出异常的级别。
                     

  
db.users.save({})  //也可使用save来更新

  


posted on 2016-06-02 23:57  duoduo1727  阅读(178)  评论(0)    收藏  举报

导航