導航:首頁 > 數據處理 > nodejs如何操作資料庫

nodejs如何操作資料庫

發布時間:2022-12-11 08:57:29

『壹』 node.js怎麼把數據存入資料庫

nodejs數據存mongodb:
首先創建資料庫保存用戶信息
資料庫創建名 users 集合並插入條用戶信息前沒 users 集合mongodb 直接創建
> db.users.insert( { "userId":1, "name":"tom", "email":"[email protected]" })
查找信息使用 find 或者 findOne區別於 findOne 返結
db.users.findOne( {"userId": 1})
返結:
{
"_id" : ObjectId("5413be6e9e1c9f9c4386756d"),
"userId" : 1,
"name" : "tom",
"email" : "[email protected]"
}
驅程序
編輯 package.json, 添加於 mongodb 引用
{
"name": "express-api",
"version": "0.0.1",
"dependencies": {
"express": "2.5.9",
"ejs": "0.4.2",
"mongodb": "1.4.1"
}
}
重新 npm install 安裝 mongodb 驅
使用 MongoDB 資料庫
修改代碼首先 require mongodb 模塊連接 mongodb 資料庫
var mongo = require("mongodb");
var express = require("express");
var app = express.createServer();
app.set("view engine", "ejs");
app.set("views", __dirname + "/views");
app.set("view options", { layout: false });
app.get("/", function (request, response) {
response.render("index");
});
app.get("/user/:id", function (request, response) {
var id = request.params.id;
console.log(id);
app.users.findOne({ "userId": +id }, function (error, doc) {
if (error) return next(error);
response.json(doc);
});
});
// connect mongodb
var server = new mongo.Server("127.0.0.1", 27017);
var db = new mongo.Db("members", server, {safe:true }).open(function (error, client) {
if (error) throw error;
console.log("\033[96m + \033[39m connected to mongodb");
app.users = new mongo.Collection(client, "users");
client.ensureIndex("users", "userId", function (error) {
if (error) throw error;
console.log("\033[96m + \033[39m ensured index.");
console.log("Web Server listening ......");
app.listen(3000);
});
});
注意現資料庫查找用戶id 前面 + 用表單字元串類型數據轉換需要數字類型
app.users.findOne({ "userId": +id }, function (error, doc) {
if (error) return next(error);
response.json(doc);
});

『貳』 nodejs用mysql連接資料庫怎麼連接多個數據表

Nodejs要連接MySQL,可以使用Nodejs的MysQL驅動來實現。比如,我們這里使用「node-mysql」連接資料庫。我們使用下面的方式來連接資料庫:
首先,我們需要使用nodejs的包管理工具(npm)安裝mysql的驅動。命令行如下:

[plain] view plain
npm install musql

現在,要在js文件中使用mysql,添加下面的代碼到你的文件中:

[plain] view plain

『叄』 頁面怎麼用node.js調用mdb資料庫

1、跨進程通信
新版的nodejs里增加了對子進程的操作,跨進程通信不是問題。
http://nodejs.org/docs/latest/api/all.html#child_Processes

復制代碼 代碼如下:

var util = require('util'),
exec = require('child_process').exec,
child;

child = exec('cat *.js bad_file | wc -l',
function (error, stdout, stderr) {
console.log('stdout: ' + stdout);
console.log('stderr: ' + stderr);
if (error !== null) {
console.log('exec error: ' + error);
}
});

如例我們可以拿到控制台的輸出內容stdout!

2、資料庫訪問相關ActiveX,ADODB.Connection
參考:http://msdn.microsoft.com/en-us/library/windows/desktop/aa746471%28v=vs.85%29.aspx

復制代碼 代碼如下:

var connection = new ActiveXObject("ADODB.Connection");
var result = 'ok';
try{
connection.Open("Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" + params.accessfile);
connection.Execute(params.sql);
} catch(ex){
result = ex.message;
}
return {
result: result
};

connection.Open(connectionString),鏈接字元串參數可以設置訪問sql server。
參考:http://www.connectionstrings.com/sql-server-2005
3、為方便維護,特別將cscript和nodejs的腳本合並,用typeof exports判斷當前運行環境。
4、字元編碼cscript代碼使用ascii編碼
非ascii碼字元進行「\uHHHH」Unicode編碼。
5、命令行字元需轉義,雙引號、百分號在命令行有特殊意義。
參數傳遞使用base64編碼,避免沖突
cscript環境MSXML2.DOMDocument可以做base64編解碼

復制代碼 代碼如下:

function base64Decode(base64){
var xmldom = new ActiveXObject("MSXML2.DOMDocument");
var adostream = new ActiveXObject("ADODB.Stream");
var temp = xmldom.createElement("temp");
temp.dataType = "bin.base64";
temp.text = base64;

adostream.Charset = "utf-8";
adostream.Type = 1; // 1=adTypeBinary 2=adTypeText
adostream.Open();
adostream.Write(temp.nodeTypedValue);
adostream.Position = 0;
adostream.Type = 2; // 1=adTypeBinary 2=adTypeText
var result = adostream.ReadText(-1); // -1=adReadAll
adostream.Close();
adostream = null;
xmldom = null;
return result;
}

『肆』 nodejs簡單訪問及操作mysql資料庫的方法示例

本文實例講述了nodejs簡單訪問及操作mysql資料庫的方法。分享給大家供大家參考,具體如下:
var
mysql
=
require('mysql');
//調用MySQL模塊
mysql模塊要安裝
$
npm
install
mysql
//創建一個connection
var
connection
=
mysql.createConnection({
host
:
'127.0.0.1',
//主機
user
:
'root',
//MySQL認證用戶名
password
:
'',
//MySQL認證用戶密碼
port:
'3306',
//埠號
database:''
//資料庫名
});
//創建一個connection
connection.connect(function(err){
if(err){
console.log('[query]
-
:'+err);
return;
}
console.log('[connection
connect]
succeed!');
});
//執行SQL語句
connection.query('SELECT
1
+
1
AS
solution',
function(err,
rows,
fields)
{
if
(err)
{
console.log('[query]
-
:'+err);
return;
}
console.log('The
solution
is:
',
rows[0].solution);
});
//關閉connection
connection.end(function(err){
if(err){
return;
}
console.log('[connection
end]
succeed!');
});
註:nodejs在操作資料庫的時候不用設置資料庫的編碼格式
set
names
utf8
希望本文所述對大家nodejs程序設計有所幫助。
您可能感興趣的文章:nodejs連接mysql資料庫簡單封裝示例-mysql模塊nodejs進階(6)—連接MySQL資料庫示例nodejs實現的連接MySQL資料庫功能示例Nodejs連接mysql並實現增、刪、改、查操作的方法詳解nodeJs實現基於連接池連接mysql的方法示例nodejs中操作mysql資料庫示例NodeJS鏈接MySql資料庫的操作方法Nodejs使用mysql模塊之獲得更新和刪除影響的行數的方法NodeJs使用Mysql模塊實現事務處理實例nodejs連接mysql資料庫及基本知識點詳解

『伍』 nodejs使用Sequelize框架操作資料庫

使用該方法可以定義model,例子如下:

該方法傳入的第一個參數是數據表的單數形式,怎麼理解呢?例如這里傳入的是website其實是模型名,數據表默認是websites這樣的復數形式,這種約定我在Laravel中也碰見過,
也就是常說的,約定大於定義,也就是說,如果我們都按照約定的規范去開發,那麼效率其實比重新定義,要高很多。
那麼,定義好了模型,該怎麼進行使用呢?

我比較推薦使用繼承Model這種方式,通過創建一個class,這樣可以使用model.exports=模塊名的方式,將該模型封裝起來。供別的地方使用,只需要require進去即可。

具體如何對數據表進行操作,就比較簡單了,只需要參考API即可。 sequelize文檔地址

『陸』 如何在nodejs中通過web訪問資料庫

1、安裝node.js、mysql,此處略(自行搜索吧)…;
2、創建一個名為test的資料庫,然後建一張名為user_info的表(僅供測試)…
這里假定mysql使用的用戶名為root,密碼為123456
相應的mysql如下:
復制代碼 代碼如下:

/**
* 創建名為test的資料庫
*/
DROP DATABASE IF EXISTS test;
CREATE DATABASE test;
USE test;

/**
* 創建user_info表
*/
DROP TABLE IF EXISTS `user_info`;
CREATE TABLE `user_info` (
`userId` int(10) NOT NULL AUTO_INCREMENT,
`userName` varchar(20) DEFAULT NULL,
PRIMARY KEY (`userId`)
) ENGINE=InnoDB AUTO_INCREMENT=4 DEFAULT CHARSET=utf8;
/**
* 插入三條記錄
*/
INSERT INTO user_info VALUES (NULL, '張一'), (NULL, '張二'), (NULL, '張三');

3、創建存儲過程(寫的很冗餘,故意的… 正好學習一下語法>_<);
復制代碼 代碼如下:

DELIMITER $$
DROP PROCEDURE IF EXISTS `test`.`proc_simple`$$
CREATE PROCEDURE proc_simple(IN uid INT(10), OUT uName VARCHAR(2), OUT totalCount INT)
BEGIN
DECLARE str_name VARCHAR(20);
SET @str_name = '';
SET totalCount = 0;
SELECT COUNT(1),userName INTO totalCount,@str_name FROM user_info WHERE userId = uid;
SET uName = @str_name;
SELECT uName, totalCount;

END$$
DELIMITER ;
4、寫程序進行調用(假定存為名為sql.js的文件);
復制代碼 代碼如下:

/**
* Created with JetBrains WebStorm.
* User: Meteoric_cry
* Date: 12-12-28
* Time: 上午00:18
* To change this template use File | Settings | File Templates.
*/
var mysql = require('mysql');
var connection = mysql.createConnection({
host : 'localhost',
port : 3306,
user : 'root',
password : '123456',
database : 'test',
charset : 'UTF8_GENERAL_CI',
debug : false
});
connection.connect();
connection.query('CALL proc_simple(1, @a, @b);', function(err, rows, fields) {
if (err) {
throw err;
}
var results = rows[0];
var row = results[0];
console.log("userName:",row.uName, "count:", row.totalCount);
});
connection.end();

『柒』 nodejs怎麼後台操作mysql

連接流程代碼如下:

var mysql = require('mysql'); //調用MySQL模塊//創建一個connectionvar connection = mysql.createConnection({

host : '127.0.0.1', //主機
user : 'root', //MySQL認證用戶名
password:'12345',
port: '3306',
database: 'node'});//創建一個connectionconnection.connect(function(err){

if(err){

console.log('[query] - :'+err); return;

}

console.log('[connection connect] succeed!');

});

//執行SQL語句connection.query('SELECT 1 + 1 AS solution', function(err, rows, fields) {

if (err) {

console.log('[query] - :'+err); return;

}

console.log('The solution is: ', rows[0].solution);

});

//關閉connectionconnection.end(function(err){

if(err){

return;

}

console.log('[connection end] succeed!');

});

關於Connection Optionos

要想創建一個資料庫連接,先就要認識清楚Options

host:主機地址 (默認:localhost)

user:用戶名

password:密碼

port:埠號 (默認:3306)

database:資料庫名

charset:連接字元集(默認:』UTF8_GENERAL_CI』,注意字元集的字母都要大寫)

localAddress:此IP用於TCP連接(可選)

socketPath:連接到unix域路徑,當使用 host 和 port 時會被忽略

timezone:時區(默認:』local』)

connectTimeout:連接超時(默認:不限制;單位:毫秒)

stringifyObjects:是否序列化對象(默認:』false』 ;與安全相關https://github.com/felixge/node-mysql/issues/501)

typeCast:是否將列值轉化為本地JavaScript類型值 (默認:true)

queryFormat:自定義query語句格式化方法https://github.com/felixge/node-mysql#custom-format

supportBigNumbers:資料庫支持bigint或decimal類型列時,需要設此option為true (默認:false)

bigNumberStrings:supportBigNumbers和bigNumberStrings啟用 強制bigint或decimal列以JavaScript字元串類型返回(默認:false)

dateStrings:強制timestamp,datetime,data類型以字元串類型返回,而不是JavaScript Date類型(默認:false)

debug:開啟調試(默認:false)

multipleStatements:是否許一個query中有多個MySQL語句 (默認:false)

flags:用於修改連接標志,更多詳情:https://github.com/felixge/node-mysql#connection-flags

ssl:使用ssl參數(與crypto.createCredenitals參數格式一至)或一個包含ssl配置文件名稱的字元串,目前只捆綁Amazon RDS的配置文件

其它:

可以使用URL形式的加接字元串,不多介紹了,不太喜歡那種格式,覺得可讀性差,也易出錯,想了解的可以去主頁上看。

MYSQL CURD操作

增加

var mysql = require('mysql');var DATABASE = "seckill";var TABLE="seckill"var connection = mysql.createConnection({
host:'127.0.0.1',
user:'root',
password:'12345',
port:'3306',
database: DATABASE
});

connection.connect();var addVip = 'insert into seckill(name,number) values(?,?)';var param = ['100元秒殺家教機',100];
connection.query(addVip, param, function(error, result){
if(error)
{
console.log(error.message);
}else{
console.log('insert id: '+result.insertId);
}
});

connection.end();

刪除

var mysql = require('mysql');var DATABASE = "node";var TABLE="seckill"var connection = mysql.createConnection({
host:'127.0.0.1',
user:'root',
password:'12345',
port:'3306',
database: DATABASE
});

connection.connect();var addVip = 'delete from seckill where seckill_id = 1005';
connection.query(addVip, function(error, result){
if(error)
{
console.log(error.message);
}else{
console.log('affectedRows: '+result.affectedRows);
}
});

connection.end();

查找

var mysql = require("mysql");var DATABASE = "node";var TABLE="seckill"var connection = mysql.createConnection({
host:'127.0.0.1',
user:'root',
password:'12345',
port:'3306',
});

connection.connect();
connection.query('use '+DATABASE);
connection.query('select * from '+TABLE, function(error, results, fields){
if (error) { throw error;
} if (results) { for(var i = 0; i < results.length; i++)
{
console.log('%s %s',results[i].name,results[i].end_time);
}
}
});

connection.end();

修改

var mysql = require('mysql');var DATABASE = "seckill";var connection = mysql.createConnection({
host:'127.0.0.1',
user:'root',
password:'12345',
port:'3306',
database: DATABASE
});
connection.connect();var userSql = "update seckill set number = number-1 where seckill_id = ?";var param = [1000, 2];
connection.query(userSql, param, function (error, result) {
if(error)
{
console.log(error.message);
}else{
console.log('affectedRows: '+result.affectedRows);
}
});
connection.end();

結束連接其實有兩種方法end(),destory();

『捌』 nodejs怎麼連接資料庫mysql

var mysql = require('mysql');
var conn = mysql.createConnection({
host: 'localhost',
user: 'root',
password: '',
database:'nodejs',
port: 3306
});
conn.connect();

//查詢
// conn.query('SELECT * from user where name="wangwei"', function(err, result) {
// if (err) throw err;
// console.log(result);
// })

//新增
// conn.query('insert into user (username,password) values("huxiaona","123456")', function(err, result) {
// if (err) throw err;
// console.log(result);
// })

//刪除
// conn.query('delete from user where username="wupeigui"', function(err, result) {
// if (err) throw err;
// console.log(result);
// })

conn.query('update user set id="1" where username="huxiaona"',function(err,result){
if (err) {throw err};
console.log("修改數據成功");
})

conn.end();

閱讀全文

與nodejs如何操作資料庫相關的資料

熱點內容
12歲用什麼祛痘產品 瀏覽:748
購買信託產品如何計息 瀏覽:531
如何理財最好的產品 瀏覽:132
測速顯示數據失敗什麼意思 瀏覽:229
重慶計算機技術學校哪個好 瀏覽:512
遇到個人不回信息的人怎麼辦 瀏覽:621
怎麼查電商各類目市場佔比 瀏覽:443
異地查詢屬於哪個公司信息 瀏覽:729
一粒瘦減肥產品怎麼樣 瀏覽:593
畫內松島屋怎麼代理 瀏覽:372
昂達主機板驅動程序怎麼操作 瀏覽:308
哪裡可以查看咸寧停電信息 瀏覽:122
二手房交易中的個人所得稅是多少 瀏覽:906
excel復制數據到微信如何變成圖片 瀏覽:787
有機聯系的市場體系指的是什麼 瀏覽:866
高橋市場是賣什麼的 瀏覽:20
花鳥市場白色小鳥叫什麼 瀏覽:576
推銷產品的話術怎麼講500字 瀏覽:904
穿越火線哪裡可以交易點券 瀏覽:297
工作走程序是什麼意思 瀏覽:554