簡介
Node.js 是一個基於Chrome JavaScript 運行時創建的一個平臺。html
Node.js是一個事件驅動I/O服務端JavaScript環境,基於Google的V8引擎,V8引擎執行Javascript的速度很是快,性能很是好。前端
簡單的說 Node.js 就是運行在服務端的 JavaScript。node
詳細學習: 菜鳥教程mysql
Hello World
新建js文件 helloworld.jsweb
console.log("hello world!");
終端執行文件(需在文件所在目錄下執行)sql
node helloworld.js
實現簡易HttpServer
新建js文件server.js數據庫
var http = require('http'); http.createServer(function (request, response) { // 發送 HTTP 頭部 // HTTP 狀態值: 200 : OK // 內容類型: text/plain response.writeHead(200, {'Content-Type': 'text/plain'}); // 發送響應數據 "Hello World" response.end('Hello World\n'); }).listen(8888); // 終端打印以下信息 console.log('Server running at http://127.0.0.1:8888/');
終端執行文件(需在文件所在目錄下執行)express
node server.js
關閉nodejs服務npm
在終端按Ctrl+C
簡介, 這篇Node.js 包管理器 NPM 講解文章講解詳細,點擊就可閱讀
NPM官方網站json
NPM是隨同NodeJS一塊兒安裝的包管理工具,能解決NodeJS代碼部署上的不少問題,常見的使用場景有如下幾種:
檢查安裝
因爲新版的nodejs已經集成了npm,因此以前npm也一併安裝好了。能夠經過輸入 "npm -v" 來測試是否成功安裝,出現版本提示表示安裝成功。
$ npm -v 2.3.0
npm 升級
Linux系統環境升級
$ sudo npm install npm -g
Windows系統環境升級
npm install npm -g
npm 安裝 Node.js 模塊語法格式以下:
$ npm install <Module Name>
如下實例,咱們使用 npm 命令安裝經常使用的 Node.js web框架模塊 express:
$ npm install express
安裝好以後,express 包就放在了工程目錄下的 node_modules 目錄中,所以在代碼中只須要經過 require('express') 的方式就好,無需指定第三方包路徑。
var express = require('express');
可使用如下命令來卸載 Node.js 模塊。
$ npm uninstall express
卸載後,能夠到 /node_modules/ 目錄下查看包是否還存在,或者使用如下命令查看:
$ npm ls
可使用如下命令更新模塊:
$ npm update express
可使用如下來搜索模塊:
$ npm search express
使用npm快速生成package.json(相似pom.xml)
npm init //根據提示做一些設定
{ "name": "nodedemo",//工程名 "version": "1.0.0",//版本號 "description": "npm測試",//描述 "main": "HelloWorld.js",//入口js "scripts": { //運行腳本 "test": "echo \"Error: no test specified\" && exit 1", "start": "node server.js" }, "author": "Hyman",//開發者 "license": "ISC"//受權協議 }
安裝mysql模塊
npm install mysql
簡單樣例
新建測試文件MysqlTest.js
var mysql = require('mysql'); var connection = mysql.createConnection({ host : 'localhost', user : 'root', password : '123456', port: '3306', database: 'test' }); connection.connect(); var sql = 'SELECT * FROM user'; //查(無參寫法) connection.query(sql,function (err, result) { if(err){ console.log('[SELECT ERROR] - ',err.message); return; } console.log('--------------------------SELECT----------------------------'); console.log(result); console.log('------------------------------------------------------------\n\n'); }); var now = new Date(); var Sql = 'INSERT INTO user(Id,name,mail,update_date,create_date) VALUES(0,?,?,?,?)'; var SqlParams = ['李四', 'lisi@mail.com',now, now]; //增(有參寫法) connection.query(Sql,SqlParams,function (err, result) { if(err){ console.log('[INSERT ERROR] - ',err.message); return; } console.log('--------------------------INSERT----------------------------'); //console.log('INSERT ID:',result.insertId); console.log('INSERT ID:',result); console.log('-----------------------------------------------------------------'); }); connection.end();
注意事項
一、不要把測試文件命名爲mysql.js
二、出現如下錯誤
[SELECT ERROR] - ER_NOT_SUPPORTED_AUTH_MODE: Client does not support authentication protocol requested by server; consider upgrading MySQL client
錯誤緣由:最新的mysql模塊並未徹底支持MySQL 8的「caching_sha2_password」加密方式,而「caching_sha2_password」在MySQL 8中是默認的加密方式。
解決方案:更改Mysql加密方式
USE mysql; --root爲數據庫用戶,123456爲用戶對應密碼 ALTER USER 'root'@'localhost' IDENTIFIED WITH mysql_native_password BY '123456'; FLUSH PRIVILEGES;
建立一個 json 數據資源文件 users.json
"user1" : { "name" : "mahesh", "password" : "password1", "profession" : "teacher", "id": 1 }, "user2" : { "name" : "suresh", "password" : "password2", "profession" : "librarian", "id": 2 }, "user3" : { "name" : "ramesh", "password" : "password3", "profession" : "clerk", "id": 3 } }
建立RESTful API 的文件server.js
var express = require('express'); var app = express(); var fs = require("fs"); //獲取用戶清單 app.get('/listUsers', function (req, res) { fs.readFile( __dirname + "/" + "users.json", 'utf8', function (err, data) { console.log( data ); res.end( data ); }); }) var user = { "user4" : { "name" : "mohit", "password" : "password4", "profession" : "teacher", "id": 4 } } //添加的新用戶數據 app.get('/addUser', function (req, res) { // 讀取已存在的數據 fs.readFile( __dirname + "/" + "users.json", 'utf8', function (err, data) { data = JSON.parse( data ); data["user4"] = user["user4"]; console.log( data ); res.end( JSON.stringify(data)); }); }) //刪除對應用戶 app.get('/deleteUser/:id', function (req, res) { fs.readFile( __dirname + "/" + "users.json", 'utf8', function (err, data) { data = JSON.parse( data ); delete data["user" + req.params.id]; console.log( data ); res.end( JSON.stringify(data)); }); }) //根據輸入id返回結果,須要放在最後,避免干擾前面的路由 app.get('/:id', function (req, res) { fs.readFile( __dirname + "/" + "users.json", 'utf8', function (err, data) { data = JSON.parse( data ); var userTemp = data["user" + req.params.id] console.log( userTemp ); res.end( JSON.stringify(userTemp)); }); }) var server = app.listen(8081, function () { var host = server.address().addressnode var port = server.address().port console.log("應用實例,訪問地址爲 http://%s:%s", host, port) })
接下來執行如下命令
$ node server.js 應用實例,訪問地址爲 http://0.0.0.0:8081
在瀏覽器中訪問 http://127.0.0.1:8081/listUsers
在瀏覽器中訪問 http://127.0.0.1:8081/addUser
注意事項
小編建了前端技術交流學習圈,小夥伴們能夠問問題料聊技術聊天氣聊心情,點擊這期待你的加入!暗號前端。喜歡這篇文章的點贊+評論666支持,沒看太小編其餘文章的能夠看看噢。