ホームページ  >  記事  >  ウェブフロントエンド  >  nodejsをmysqlデータベースに接続する手順の詳細な説明

nodejsをmysqlデータベースに接続する手順の詳細な説明

php中世界最好的语言
php中世界最好的语言オリジナル
2018-05-09 11:48:153257ブラウズ

今回は、nodejs を mysql データベースに接続する手順について詳しく説明します。nodejs が mysql データベースに接続するための 注意事項 は何ですか?実際のケースを見てみましょう。

1. よく使用されるいくつかのグローバル変数

1. filename は現在のファイルのパスを取得します2. dirname は現在のファイルのディレクトリを取得します。

3. process.cwd() 現在のプロジェクトのディレクトリを取得します

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 --save

2、在主文件中配置

//配置模板的文件路径
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" 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返回json2. ファイルのインポートとエクスポート

1. インポートには require を使用します。ファイル

2. module.exports を使用して、ファイルで指定された変数、メソッド、オブジェクトをエクスポートします

3. node
プロジェクトの構築ディレクトリ構造


demo

package.json パッケージまたは現在のプロジェクトが依存するモジュール router
ルーティングを保存するファイル

views 🎜 ビューを保存するモジュール🎜 ファイル 🎜 module 🎜データベースなどのモジュールの書き込み 🎜 app.js 🎜メインエントリファイル 🎜🎜🎜 4. 🎜 router に別途ルーティングビューを記述する🎜ファイル内🎜demo🎜🎜1. ビューファイル🎜
...
res.json({
 info:"成功",
 code:1
});
...
🎜を参照します。 2. メインファイル内で🎜rrreee🎜🎜🎜を呼び出します。 5. 🎜ejs を使用します。 >🎜テンプレート🎜🎜🎜🎜1. インストールする必要がありますが、🎜rrreee🎜をインポートできません2. メインファイルで🎜rrreee🎜を設定します3. 🎜🎜①、テンプレートファイル🎜rrreee🎜②を使用し、ルートでテンプレートをレンダリングします🎜 rrreee🎜③、メインファイル🎜rrreee🎜🎜🎜6. 🎜ejs🎜テンプレートファイルの使用について🎜🎜🎜🎜1. 通常のフィールド🎜rrreee🎜3.配列 🎜rrreee🎜🎜🎜 7. 静的ファイル 🎜🎜🎜🎜 をロードします。 1. メイン ファイルで 🎜rrreee🎜 を設定します。 2. テンプレートで 🎜rrreee🎜🎜🎜 を使用します。 8. 🎜mysql🎜 を使用します。データベース 🎜🎜🎜🎜1. moduledb.js ファイルを作成します🎜rrreee🎜2. router ビューでクエリ データを使用します🎜 ①、ファイル🎜rrreee🎜を導入し、🎜rrreee🎜3をビューで使用し、新しいデータを追加します🎜🎜①、フロントエンドページのコード例を参照してください🎜🎜②、reqを通じてユーザーデータパラメータを取得します。 query🎜 rrreee🎜🎜🎜9. 🎜node🎜が🎜jsonを返す方法について🎜🎜🎜🎜🎜 フロントエンドとバックエンドの分離開発モデルでは、バックエンドによって返されるデータは通常 json であり、ejs テンプレート エンジンを使用する必要はありません 🎜rrreee🎜 この記事の事例を読んだ後は、この方法を習得したと思います。その他の関連記事は PHP 中国語 Web サイトにあります。 🎜🎜推奨読書: 🎜🎜🎜vueはstorejsによって取得されたデータを処理します🎜🎜🎜🎜🎜IPでアクセスできないローカル開発環境に対処する方法🎜🎜🎜🎜🎜p5.js_javascriptスキルを使用して花火の特殊効果を作成するためのサンプルコード🎜 🎜🎜

以上がnodejsをmysqlデータベースに接続する手順の詳細な説明の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。