`

express搭建项目及连接数据库

阅读更多

(一)安装node.js之前先【安装nvm】:
安装nvm有一个简单的方法:
$ wget -qO- https://raw.github.com/creationix/nvm/v0.25.0/install.sh | sh
这样安装实际上是把nvm克隆到 ~/.nvm 中的。在~/ .bashrc和 ~/ .zshrc中添加的scource在安装过程中已经都设置好了。
如果你的nvm版本是较低版本的话, 你也可以在 ~/ .nvm/中checkout新的版本安装,就会自动更新。

(二)接下来【安装node】:
安装好nvm后就可以直接使用nvm安装node,首先用nvm查看现有的所有node版本:
$ nvm ls-remote  
【nvm 安装node的同时会安装npm】
然后选择你想要的版本安装:$ nvm install <version>
如果安装了多个版本之后,你可以用:nvm use <version>来选择你想要的版本。
nvm current 来查看当前的node版本,node ls 也可以查看本地node
通过命令来设置默认的版本:$ nvm alias default<version>
安装好之后,可以通过node -v来查看你所安装的版本

(三)【安装express】:
 $ nvm install -g express-generator

这时express就是最新版。可以通过:$ express version 来查看你的版本是不是4x的。
其他express命令可以去看express教程

 

(四)【通过express来创建工程:】

在命令行输入如下命令:

$ express -e blog  
$ cd blog && npm install

 这时你的工程名为blog的项目就已经建造成功了,然后通过下面这条命令来运行:

$ DEBUG=blog:* npm start 

 之后在浏览器访问;localhost:3000,会看到express默认的界面。

下面来看一下项目的【工程结构】:
app.js:启动文件,或者说入口文件
package.json:存储着工程的信息及模块依赖,当在 dependencies 中添加依赖的模块时,运行npm install,npm 会检查当前目录下的 package.json,并自动安装所有指定的模块
node_modules:存放 package.json 中安装的模块,当你在 package.json 添加依赖的模块并安装后,存放在这个文件夹下
public:存放 image、css、js 等文件
routes:存放路由文件
views:存放视图文件或者说模版文件
bin:存放可执行文件

 

(五)【连接数据库:】两种方法,笔者亲测建议用第一种

创建项目数据库和超级管理员:
【操作数据库】数据库集合collection,文档设置insert
终端命令行里:
mongo//进入数据库
use nodedb//创建项目数据库
db.addUser("shuaige", "123456")//给这个数据库创建了一个叫帅哥的账号,密码123456 (但是我觉得可能我理解的不到位,你也可以不做这个操作)

若以授权方式启动数据库,那么我们可以进行管理员验证,之后可以继续操作
然后,我们就为这个nodedb数据库创建collection(collection就相当于oracle和mysql里的table)
数据库代码

db.createCollection("users")//创建一个集合,也就是表 
db.users.insert({user: "admin", password: "123456"})//给users里添加一个文档,也就是一条记录账号admin,密码123456  

 ok,现在检查一下:
db.users.find() //如果看到你刚刚添加的文档记录,就ok咯

 

现在我的nodedb数据库里已经有了用户admin,之后操作就在nodedb数据库里进行

 

 

【方法二:】

打开package.json文件,在dependencies 最后一行添加:"mongodb": "1.4.15"
然后在工程目录下运行:npm install 更新依赖模块。
mongodb模块安装好后,在工程目录下新建settings.js 文件,并在里面添加:

 module.exports = {   
      cookieSecret: 'myblog',   
      db: 'blog',   
      host: 'localhost',  
      port: 27017  
    };

 然后在新建一个models文件夹,并在文件夹里新建db.js文件,文件里添加:

var settings = require('../settings'),  
        Db = require('mongodb').Db,  
        Connection = require('mongodb').Connection,  
        Server = require('mongodb').Server;  
    module.exports = new Db(settings.db, new Server(settings.host, settings.port),  
    {fe: true});

 然后打开app.js,在var routes = require('./routes/index');下添加:
var settings = require('./settings');引入文件

 

(六)【会话支持:】
把会话信息存储到数据库中,便于持久维护,我们需要express-session和connect-mongo这两个中间件的帮助。在package.json文件里添加:
    "express-session": "1.9.1", 
    "connect-mongo": "0.4.1" 
更新模块npm install后,打开app.js文件,添加:

var session = require('express-session'); 
    var MongoStore = require('connect-mongo')(session); 
     
    app.use(session({ 
      secret: settings.cookieSecret, 
      key: settings.db,//cookie name 
      cookie: {maxAge: 1000 * 60 * 60 * 24 * 30},//cookie过期时间30 days 
      store: new MongoStore({ 
        db: settings.db, 
        host: settings.host, 
        port: settings.port 
      }) 
    }));  

 
 注意:这里提醒一下,这两段代码的位置问题。上面两个变量放在文件中变量的位置。下面一段应放置在:

 

app.use(express.static(path.join(__dirname, 'public'))); 
这段代码的上面。

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

分享到:
评论

相关推荐

    基于vue全家桶+node.js+express+mysql实现的商城网站

    使用vue-cli脚手架搭建项目 使用vue-router实现路由切换 使用vuex进行状态管理 使用axios进行数据请求 stylus和scss编写样式 联动滚动借助了vue-infinite-scroll插件和图片懒加载vue-lazyload插件 Express编写...

    node+express框架中连接使用mysql(经验总结)

    最近在学习node.js,做了一个练手项目,使用node.js+express框架,配合mysql数据库和前端vue框架开发一个多人文档编辑系统。 node.js环境下express+mysql的服务端项目示例 首先是环境搭建: node环境下 $ npm ...

    基于nuxt3+vue3+nestjs搭建视频影视类网站系统完整源码+项目说明+sql数据库.zip

    基于nuxt3+vue3+nestjs搭建视频影视类网站系统完整源码+项目说明+sql数据库.zip 技术选型 1. **前端技术** - nuxt 3.6.5 - vue 3.2.45 - element-plus 2.2.21 - axios 0.24.0 - vuex 3.6.0 - vue-router ...

    项目代码:搭建免费的Node服务器+express+mysql(Github + Glitch + SQLPub)

    资源标题:白嫖Node.js服务器,测试mysql数据库连接的完整工程,包含github自动同步glitch功能。 原文链接:https://blog.csdn.net/TSINGLEE0/article/details/127195768 链接概述:搭建免费Node服务器的详细步骤,...

    weread_server:vue2全家桶仿微信读书 express后端接口 mysql数据库

    前言该项目是仿微信读书的后端接口,使用 express 和 mysql 搭建项目运行通过 git 克隆到本地git clone https://github.com/easonrhl/weread_server.git解压 mysql 压缩包,并导入到 mysql在 app/service/db.config....

    nodeJS(express4.x)+vue(vue-cli)构建前后端分离实例(带跨域)

    2.安装依赖包express4.x 点这里》》》nodeJS搭建本地服务器 3.安装vue-cli脚手架 点这里》》》vue-cli构建vue项目 这里强调一下,express是后端服务器,它是一个独立的服务器,vue启动的是前端服务器,vue-cli中...

    基于node和MQTT协议物联网设备管理系统.zip

    资源包含文件:lunwen文档+项目源码及数据库文件 项目概述:物联网应用网站是 B/S 体系软件设计的毕业作业,主要内容是搭建一个 MQTT 协议服务器以接收指定物联网终端发送的数据,除基础的用户注册、登录功能外,为...

    前端资源-vue连接后端脚手架模板资源.zip

    它包含了一些预配置的文件和文件夹,可以帮助开发者快速搭建一个基于Vue的全栈项目。主要特点如下: 1. 集成了Vue CLI,方便创建和管理Vue项目。 2. 提供了常用的前端开发工具,如ESLint、Prettier等,帮助保持代码...

    express-react-project-example

    带有PostgreSQL,Express和React的示例项目 由Express API服务器支持的端到端...我们需要设置一些信息,以便启动新的PostgreSQL服务器实例,以及以后从Express服务器连接到它。 复制示例环境文件 cp .env.example .e

    一起学 Node.js

    连接数据库 为什么使用 Mongolass 注册 用户模型设计 注册页 注册与文件上传 登出与登录 登出 登录页 登录 文章 文章模型设计 发表文章 主页与文章页 编辑与删除文章 留言 留言模型设计 显示留言 发表与删除留言 404...

    (全JavaScript语言Web项目-图书管理系统)Books-Management-System-master.zip

    自己封装了数据库连接池的接口,利用Java项目MVC的思想组织后台,用Ajax传递前后台数据。 AngularJS用到了:ng-grid,ui-router,ng-file-upload等模块 ExpressJS用到了:body-parser,cookie-parser,cookie-session,ejs,...

    基于Vue.js + Node.js开发的GMS游戏管理平台源码+项目部署说明.zip

    【项目介绍】 基于Vue.js + Node.js开发的GMS-游戏管理平台源码+项目部署说明.zip 该资源内项目代码都是经过测试运行成功,功能ok的情况下才上传的,请放心下载...server 服务端(须确保数据库已连接) npm run serve ~~~

    微信小程序-一款学习类小程序软件

    [连接数据库]() []() [登录]() []() [文章]() [文章模型设计]() [发表文章]() [主页与文章页]() [编辑与删除文章]() [留言]() [留言模型设计]() [显示留言]() [发表与删除留言]() [404页面]() [错误页面]() ...

    blog_nodejs_mysql:nodejs 和 mysql 的博客

    blog_nodejs_mysql "The blog for nodejs and mysql." 此项目是用nodejs与mysql创建的,mongoDB版的会在此项目完成后,再重新生成一...启动项目时,后台会有输出,如果数据库连接成功会返回类似“ok,ID is:”的消息,如

    matlab注销代码-web_measure:web_measure

    搭建的一个 web app ,多用户注册登录连接至服务器。用户通过输入 Smith 圆图所需的基本参数,传入服务器,调用 Matlab 来计算出结果并绘制仿真出 Smith 圆图返回给用户。 页面展示 web app 主页面: ![]() node.js ...

    matlab注销代码-web_measurement:web_measurement

    搭建的一个 web app ,多用户注册登录连接至服务器。用户通过输入 Smith 圆图所需的基本参数,传入服务器,调用 Matlab 来计算出结果并绘制仿真出 Smith 圆图返回给用户。 页面展示 web app 主页面: ![]() node.js ...

    travelibrary-微信小程序实战-流动图书馆.zip

    从最初对小程序,服务端两眼一抹黑,到搭建出应用的雏形,实现基本的效果,再到最后的拆分整合代码,这期间经历了很多,也收获了很多。从数据库的设计到后台数据库操作、会话管理、http服务接口一直到前后端数据交互...

Global site tag (gtag.js) - Google Analytics