node 连接数据库(nodejs怎么连接数据库)
其实node 连接数据库的问题并不复杂,但是又很多的朋友都不太了解nodejs怎么连接数据库,因此呢,今天小编就来为大家分享node 连接数据库的一些知识,希望可以帮助到大家,下面我们一起来看看这个问题的分析吧!
node怎么连接mongodb数据库
一、写在前面人人都想成为全栈码农,作为一个web前端开发人员,通往全栈的简洁之路,貌似就是node/dist/v0.6.1/node-v0.6.1.msi下载电脑适配的安装包(这个是windows的,买不起mac啊),然后根据引导安装就可以了,默认安装在C:\Program Files\nodejs文件下,并将该目录添加进PATH环境变量。具体做法,右击”我的电脑“-”属性“-“系统高级”-”高级“-”环境变量“-选择“变量名:PATH”;“改变量值:在最后面添加【C:\Program Files\nodejs】(根据自己的安装目录而定)”。打开cmd直接运行命令: node-v可以输出当前版本号。node文件里已经集成了npm,之后使用npm install XXX来安装需要的插件或者模块。三、使用express框架忙活了一阵,终于可用npm命令进行初始化、安装express框架,然后写个hello world爽一下了。为什么要选择express框架了,当然有它的特别之处,对新手来说最怕的就是麻烦还容易出错。express当然为我们考虑到了,所以提供了快速生成器:express-generator 1、通过命令:npm install express-generator-g安装到全局 2、在用express命令生成项目结构 express myapp其中的myapp是你的项目名称 3、通过cd myapp进入项目文件中通过npm install初始化依赖模块通过set DEBUG=myapp& npm start启动web服务器 4、在浏览器中打开 localhost:3000/网址就可以看到这个应用了。默认情况下用的模版引擎是jade,项目里也已经配置好了这个模版。四、介绍express生成器的项目 1、myapp项目的机构如下: 2、package.json这个可以说是模块管理包,项目信息和模块的版本号,其实你会发现在项目模块初始化的时候就是由这里的配置去查找生成的。 3、app.js是项目的启动文件,可以说是项目的核心。主要写一些公共的功能。 4、bin文件下有个无后缀的www文件,这是项目的入口文件,配置web服务端口和一些监听事件。 5、node_modules是项目的依赖的的文件模块,之后导入的包也会被放在其中,比如连接数据库的mongoose模块,后面会详细讲。 6、public是项目的静态资源文件集,很容易看出图片、css文件、js文件都放在这里。 7、routes是项目的路由模块,其中已经默认了index.js和user.js文件。在这里其实也包括一般后台语言中的控制器内容,当然在大的项目上是可以分离开来的。 8、views是项目的模版文件,是jade模版引擎,这个模版很简洁,但是坑也比较多,比如对空格的要求都非常严格,多一个少一个空格都会报错的,曾经踩过很多坑,其实它的性能也不是很高还不如用ejs呢。五、安装mongoDB 1、同样在官网(/downloads)上直接下载msi文件 2、简单的下一步进行安装,有默认的就让其默认,有选择的就全选了 3、然后配置环境变量,和node的一样不再累述,不过可以放中图,哈哈哈…… 4、接下来是启动mongoDB服务 5、通过命令:mongod--dbpath f:\MongoDB\data其中 f:\MongoDB\data是文件存放路径,看到如下信息说明成功了 6、MongoDB监听的是27017端口,同时打开浏览器输入127.0.0.1:27017,则会看到如下提示: It looks like you are trying to access MongoDB over HTTP on the native driver port. 7、然后,再打开一个cmd,输入mongo命令链接数据库,出现如下提示: 2015-05-02T17:10:19.467+0800 I CONTROL Hotfix KB2731284 or later update is not installed, will zero-out data files MongoDB shell version: 3.0.2 connecting to: test 8、这样windows环境下的monogDB就安装成功了。补充: 9、如果你嫌每次用命令打开服务麻烦的话,可以写成批处理文件,就是新建一个后缀.bat的文件,写上如下代码: start mongod--dbpath F:\MongoDB\data 10、当然了,你也可以将MongoDB以服务的方式启动,不过我觉得在学习的过程中用处不大,小伙伴们可以自己尝试一下,如果有需要的话,我在后面会补上。 11、要是觉得命令行不好用,推荐一个带图形化界面的软件:MongoVUE,就和navicat差不多,它有免费版的,就是功能少点,但学习过程中完全足够了六、在node项目中使用monogDB 1、导入monogDB连接模块,express官方介绍的是mongoskin模块,这个我就不说了,这里介绍通过mongoose安装 2、在myapp项目下执行命令 npm install mongoose-save安装保存到node_modules,也可以在package.json中配置"mongoose":"^4.4.12",然后命令npm install安装。 3、在app.js文件中 a、导入mongoose模块: var mongoose= require('mongoose'); b、创建数据库连接 mongoose.connect('mongodb://localhost/myDB')//连接本地数据库 4、在项目根目录下新建文件夹schemas,这个是数据集模块,在模块下新建users.js文件 var mongoose= require('mongoose');//申明一个mongoons对象 var UsersSchema= new mongoose.Schema({ name: String, paw: String, meta:{ createAt:{ type: Date, default: Date.now()}, updateAt:{ type: Date, default: Date.now()}}})//每次执行都会调用,时间更新操作 UsersSchema.pre('save', function(next){ if(this.isNew){ this.meta.createAt= this.meta.updateAt= Date.now();}else{ this.meta.updateAt= Date.now();} next();})//查询的静态方法 UsersSchema.statics={ fetch: function(cb){//查询所有数据 return this.find().sort('meta.updateAt')//排序.exec(cb)//回调}, findById: function(id, cb){//根据id查询单条数据 return this.findOne({_id: id}).exec(cb)}}//暴露出去的方法 module.exports= UsersSchema 5、在根目录新增modules文件,这个是数据模型模块,在模块下新增users.js文件 var mongoose= require('mongoose') var UsersSchema= require('../schemas/users')//拿到导出的数据集模块 var Users= mongoose.model('Users', UsersSchema)//编译生成Movie模型 module.exports= Users 6、在routes文件中的users.js文件中添加路由控制器代码 var express= require('express'); var mongoose= require('mongoose');//导入mongoose模块 var Users= require('../models/users');//导入模型数据模块 var router= express.Router();/* GET users listing.*/ router.get('/', function(req, res, next){ res.send('respond with a resource');});//查询所有用户数据 router.get('/users', function(req, res, next){ Users.fetch(function(err, users){ if(err){ console.log(err);} res.render('users',{title:'用户列表', users: users})//这里也可以json的格式直接返回数据res.json({data: users});})}) module.exports= router; 7、在views文件下新增users.jade extends layout block content h1= title//jade取值方式 ul each user in users//jade模版的遍历方式 li h4#{user.name} span#{user.paw} 8、最后在浏览器中打开网址:localhost:3000/users/users,查看效果。到这里一个从数据库到前端展现的项目就完成了。以上就是本文的全部内容,希望对大家的学习有所帮助。
nodejs+mysql怎样操作数据库
这次给大家带来nodejs+mysql怎样操作数据库,nodejs+mysql操作数据库的注意事项有哪些,下面就是实战案例,一起来看一下。
一、几个常用的全局变量
1、__filename获取当前文件的路径
2、__dirname获取当前文件的目录
3、process.cwd()获取当前工程的目录
二、文件的引入与导出
1、使用require引入文件
2、使用module.exports导出文件中指定的变量、方法、对象
三、node项目的搭建目录结构
demo
package.json当前项目所依赖的包或者模块
router存放路由的文件
views存放视图的模块
public静态文件
module书写模块比如数据库
app.js主入口文件
四、将路由视图单独写在router文件中demo
1、视图视图文件
const express= require("express");
const router= express.Router();
router.get("/",(req, res)=>{
res.send("hello word");
});
router.get("/article",(req, res)=>{
res.send("我是文章列表");
})
module.exports= router;2、在主文件中调用
'use strict';
const express= require("express");
const app= express();
app.use("/",require("./router/03_router"))
app.use("/app",require("./router/03_router1"))
app.listen(3000);五、使用ejs模板
1、需要安装但可以不引入
npm install ejs--save2、在主文件中配置
//配置模板的文件路径
app.set("views",__dirname+"/views");
//配置模板引擎
app.set("view engine","ejs");3、使用
①、模板文件
<!doctype html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta name="viewport"
content="width=device-width, user-scalable=no, initial-scale=1.0, maximum-scale=1.0, minimum-scale=1.0">
<meta http-equiv="X-UA-Compatible" content="ie=edge">
<title>Document</title>
</head>
<body>
<h1>我是模板渲染的</h1>
</body>
</html>②、在路由中渲染模板
'use strict';
const express= require("express");
const router= express.Router();
router.get("/",(req, res)=>{
//可以直接使用res.render("03_index");
res.render("03_index.ejs");
});
router.get("/article",(req, res)=>{
res.send("我是文章列表");
})
module.exports= router;③、主文件
'use strict';
const express= require("express");
const app= express();
//配置模板的文件路径
app.set("views",__dirname+"/views");
//配置模板引擎
app.set("view engine","ejs");
app.use("/",require("./router/03_router"))
app.use("/app",require("./router/03_router1"))
app.listen(3000);六、关于ejs模板文件的使用
1、返回数据
...
let dataset={
name:"张三",
age:20,
books:['三国演义','西游记','红楼梦','水浒传']
}
res.render("03_index.ejs",dataset);
...2、普通的字段
<h2><%= name%></h2>
<h2><%= age%></h2>3、迭代数组
<ul>
<% for(let i in books){%>
<li><%= books[i]%></li>
<%}%>
</ul>七、加载静态文件
1、主文件中配置
//设置静态文件的加载(js,css,img)
app.use(express.static(__dirname+"/public"));2、在模板中使用
<link rel="stylesheet" rel="external nofollow" href="./css/bootstrap.css" rel="external nofollow">
<script type="text/javascript" src="./js/jquery-3.1.1.min.js"></script>
<img src="./img/002.jpg">
...八、使用mysql数据库
1、在module中创建一个db.js的文件
'use strict';
const mysql= require("mysql");
/**
*将整个方法全部暴漏出去
*@param sql sql语句
*@param arg传递到sql语句中的参数,可以不写
*@param callback回调函数,可以不写
*/
module.exports= function(sql,arg,callback){
//1.创建连接(根据自己的数据库配置)
let config= mysql.createConnection({
host:"localhost",//数据库的地址
user:"root",//数据库用户名
password:"root",//数据库密码
port:"3306",//mysql数据库的端口号
database:"mybatistest"//使用那个数据库
});
//2.开始连接数据库
config.connect();
//3.对数据库的增删改查操作
config.query(sql,arg,(err,data)=>{
callback&& callback(err,data);
})
//4.关闭数据库
config.end();
}2、在router视图中使用查询数据
①、引入文件
//引入数据库文件
const db= require("./../module/db");②、视图中使用
router.get("/",(req, res)=>{
db("select* from m_dept",(err,data)=>{
console.log(data);
res.render("03_index.ejs",{data:data});
})
});3、新增数据
①、前端页面见代码案例
②、通过req.query获取用户数据参数
router.get("/regist",(req, res)=>{
//获取到输入参数,前提是input上要写name
console.log(req.query);
db("insert into student(name,age) values(?,?)",[req.query.username,req.query.age],(err,data)=>{
console.log(data);
if(data){
res.send("成功");
}
})
})九、关于node返回json的方式
在前后端分离开发模式中后端返回的数据一般都是json,不需要使用ejs模板引擎了
...
res.json({
info:"成功",
code:1
});
...相信看了本文案例你已经掌握了方法,更多精彩请关注Gxl网其它相关文章!
推荐阅读:
如何在项目中使用PHP静态绑定
如何使用AngularJS监听渲染
nodejs怎么连接数据库
通常在NodeJS开发中我们经常涉及到操作数据库,尤其是 MySQL,作为应用最为广泛的开源数据库则成为我们的首选,本篇就来介绍下如何通过NodeJS来操作 MySQL数据库。安装MySQL模块到NodeJS中我们需要让NodeJS支持MySQL,则需要将MySQL模块添加到系统支持库
想要快速了解Node.js,赞生推荐亲看看 node.js_guide.pdf— node.js开发指南:想要电子版高清的留言发送
如果不想留言可以带你做飞机!直接下载
Node.js
简单介绍一下node.js的操作吧
安装 node-mysql
$ npm install mysql
创建测试表
//数据库名 NodeSampleCREATE TABLE `NodeSample`.`MyTable`(
`id` INT UNSIGNED NOT NULL AUTO_INCREMENT PRIMARY KEY,
`firstname` VARCHAR( 20) NOT NULL,
`lastname` VARCHAR( 20) NOT NULL,
`message` TEXT NOT NULL
) ENGINE= MYISAM;
连接数据库
Js代码
var sys= require('sys');
var Client= require('mysql').Client;
var client= new Client();
client.user='someuser';
client.password='password';
client.connect(function(error, results){
if(error){
console.log('Connection Error:'+ error.message);
return;
}
console.log('Connected to MySQL');
});
关于本次node 连接数据库和nodejs怎么连接数据库的问题分享到这里就结束了,如果解决了您的问题,我们非常高兴。