⑴ nodejs如何判斷資料庫操作是否執行完畢
判斷如下:
將運行結果用arr.length來判斷,如果arr.length不像我們期望的那樣,比如由於網路傳輸或者處理異常,少一條,那麼我們將無法做後續的處理。這種處理方式強業務耦合;不具有普適性。taskWatcher 充當非同步任務執行情況的觀察員,僅與非同步過程的調用次數有關,且與其他處理過程無關。方法返回一個 Promise, 它將在上述可迭代對象中的所有 Promise 被 resolve 之後被 resolve,或者在任一 Promise 被 reject 後被 reject。
⑵ nodejs如何獲取資料庫數據渲染頁面
所有語言處理方式都差不多,nodejs也沒啥特別的:
當請求後端的一個地址,如果這個頁面需要從資料庫取數據,nodejs就會發送sql(假設你是關系型數據結庫)到資料庫,資料庫執行sql,返回結果給nodejs,然後nodejs將結果進行一些邏輯處理後放入上下文環境(context);
接著nodejs會調用後端模板引擎(比如ejs,pug)生成html,在這期間在需要取數據的時候就從context取,最後將生成的html文件流交給http伺服器;
瀏覽器接收到http伺服器的響應後,解析html生成DOM樹,處理js和css,生成渲染樹,最後顯示出來
⑶ 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中通過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();
⑸ 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);
});