Nodejs+express+mysql學習測試

[思考]
1. 使用nodejs就是想要解決前端的相關問題
2. JS 要進行最佳化
3. 動態include   js  有用到的功能才透過  include 進來 不要在 html 的header 裡面包一大堆沒用到的東西
4. 考慮結合 Nginx+php 嘗試  (在Linux  下)
5. JS 未來非常可能走向二進位的編譯語言 (追求效能)
6. CSS 最佳化的規則中 最重要的就是要壓縮到最小

[加密/解密]
nexe/ jxcore
https://github.com/cfsghost/npk
browsify或webpack

[額外]
用PHP模擬
https://github.com/aeberdinelli/express-php

[入門]
如果想要練 nodejs 先看 Nodejs + express 這個組合的簡介
看過了 再來看 webpack

要完成的目標

[平台方案比較]
在Windows底下最好的Web方案 只有兩種 一種就是跑IIS來架設網站  另外一種就是跑 nodejs
– 第一方案就是 ASP.net + IIS
– 第二方案應該就是 nodejs
– 第三方案應該就是 IIS + PHP (不太穩)
– 第四方案應該就是 nginx + php (沒有很快但是勉強可以接受)

[常用組合]
nodejs+webpack+express+bootstrap+kendoui+jquery

[app 的 基本結構]
https://github.com/visionmedia/screenshot-app/blob/master/app.js


注意 Windows 版的 NVM 在安裝之前要先 建立好目錄

 

[nodejs 安裝概念]
1.注意 NVM 可以管理 nodejs 的版本

[yarn安裝]
官網 https://classic.yarnpkg.com/en/docs/usage

[npm安裝]
#npm升級   npm update
# 或是npm install -g npm@latest

[傻瓜專案研究]

 

#建立資料夾
mkdir kapp

#進入資料夾
cd kapp

#起始
npm init -y

#安裝 express
npm install  express –save

 

#express 快速產生
npm install  express-generator –save -g

#安裝 ejs
npm install –save-dev ejs

#設定樣本引擎到 kapp 目錄
#express –view=ejs kapp
express –view=ejs

#安裝
npm install

#安裝 mysql
npm install mysql

[未整理]
npm i -g webpack
npm i –save-dev webpack

[全域變數用法]
var express = require("express")
var app = express()
–>  app.locals.global_value = 0;

function myApiFunc(callback)
{
/*
* This pattern does NOT work!
*/
try {

doSomeAsynchronousOperation(function (err) {
if (err)
throw (err);
/* continue as normal */
});

} catch (ex) {
callback(ex);
}
}

#安裝 forever –>  https://github.com/foreversd/forever
[這可以拿來管理自己所寫的程式所占用的port]
npm install forever -g

————————————————————————————————————-

顯示所有運行的服務

$forever list
啟動

$forever start app.js
停止操作

$forever stopall
停止某一個程式專案

$forever stop app.js

————————————————————————————————————-
-g   意思是大家都可以用

-S, –save: Package will appear in your dependencies.

-D, –save-dev: Package will appear in your devDependencies.

-O, –save-optional: Package will appear in your optionalDependencies.

[Kendoui webpack 整合]
https://docs.telerik.com/kendo-ui/third-party/webpack

[常用的外掛一覽]
cors to allow requests coming from another server or a different port of the same server.

html-loader
html-webpack-plugin
webpack-dev-server
webpack
webpack-cli
babel-loader
file-loader
style-loader
css-loader
mini-css-extract-plugin

npm install –save-dev html-webpack-plugin

npm install –save-dev clean-webpack-plugin

npm install –save-dev webpack-manifest-plugin

npm install –save-dev express webpack-dev-middleware jquery

npm install –save-dev webpack-dev-middleware webpack-hot-middleware

npm install –save-dev ejs

我们采用的是 “npm install –save-dev gulp-uglify ” (见上图)命令安装,因为我们在发布后用不到它,而只是在我们开发才用到它。dependencies 下的模块,则是我们发布后还需要依赖的模块,譬如像jQuery库或者Angular框架类似的,我们在开发完后后肯定还要依赖它们,否则就运行不了。

如果沒有使用 –save-dev 這個參數,不會更新 package.json,只會默默的幫你在專案裡新增 node_modules 這個資料夾,並且把你的套件放進去。
除了 –save-dev 之外,還有 –save 可以使用,兩者的差別在於:
–save-dev:用來安裝開發時用的工具
–save:用於上線時必要的套件

比方說 express 這就是我們開發時會用到的臨時伺服器,應該使用 –save-dev
而 jquery, react … 等,是上線必備的套件,應該使用 –save

——————————————————-紀載區———————————————————-
[注意關鍵字]
Express Server
最小化 css

html-loader
html-webpack-plugin
webpack-dev-server
webpack
webpack-cli
babel-loader
file-loader
style-loader
css-loader
mini-css-extract-plugin

npm install –save-dev html-webpack-plugin

npm install –save-dev clean-webpack-plugin

npm install –save-dev webpack-manifest-plugin

npm install –save-dev express webpack-dev-middleware jquery

npm install –save-dev webpack-dev-middleware webpack-hot-middleware

npm install ejs –save-dev

//叢集運算
npm i pm2 -g

https://www.npmjs.com/package/kill-port

npm install mysql
npm install mongodb

npm install redis
npm install — save express node-cron nodemailer

npm install multer –save

npm install php-express

https://github.com/aeberdinelli/express-php

https://github.com/ruanyf/webpack-demos

taskkill /F /IM nginx.exe

1.nodejs 要安裝 msi 檔案
(可以透過 nvm 來管理 nodejs 版本 )

2.選擇一個跑app的資料夾

3.建立第一個應用資料夾 –>myapp

4.cd myapp

5.建立 package.json
–> npm init -y

npm install -g webpack webpack-cli

6.安裝 express server
–> npm install express –save-dev

nodejs

ref
http://expressjs.com/en/guide/routing.html

https://cnodejs.org/topic/5e0e24594bea432607fcca26

登入系統
https://stackoverflow.com/questions/7990890/how-to-implement-login-auth-in-node-js/8003291#8003291

[重要]
快速產生器
http://expressjs.com/en/starter/generator.html

[學習]
https://developer.mozilla.org/zh-TW/docs/Learn/Server-side/Express_Nodejs/routes

[範例]
https://github.com/expressjs/express/tree/4.13.1
https://github.com/expressjs/express/tree/4.13.1/examples

post,get 取值
https://cnodejs.org/topic/50a333d7637ffa4155c62ddb

注意 有不一樣的方法
var http = require('http');
var url = require('url');
var util = require('util');

http.createServer(function(req, res){
res.writeHead(200, {'Content-Type': 'text/plain; charset=utf-8'});
res.end(util.inspect(url.parse(req.url, true)));
}).listen(3000);

[備註]
app.use(express.urlencoded())   // allows reading POST request data

const express = require("express");
const app = express();
const bodyParser = require("body-parser");
const cors = require("cors");
app.use(cors());
app.use(bodyParser.urlencoded({ extended: false }));
app.use(bodyParser.json());

/* 這個暫時不需要 */
–>npm init  –>建立環境參數