Day 46 (Node.js)

1.NPM版本

无须更新到最新,怕错误


2.制作专案package.json

npm init
npm init -y (全预设值)

(1)新增资料夹
(2)
https://ithelp.ithome.com.tw/upload/images/20210810/20137684QIqWFkoHAA.png
(3)制作 package.json

只是个说明档,但专案模组被删除时
利用 >npm install 会依照package.json抓回模组
方便用~~


3.安装模组

npm install ip
npm install express

package-lock.json 可以看到装了甚麽


4.安装参数简介

npm install bootstrap@4 @版本
npm uninstall bootstrap 解除安装


5.package.json run

建立 app.js、app.js、app3.js

  "scripts": {
    "test": "echo \"Error: no test specified\" && exit 1",
    "dev":"node app2.js",
    "setup":"node app3.js"
  },

只能用run

npm run dev
npm run setup

  "scripts": {
     "start": "node app.js", 
  },

start都可以用

npm start
npm run start


6.装ip MOD 检视IP

npm install ip

    var ip = require("ip");
    var result = ip.address();
    console.log(result);

node app.js


7.常用套件简介

express : 建立Web服器最常见的套件
body-parser : 协助Exprs解析表单与JON资料
cors : 协助进行跨来源资源共用(COR)在HTTP回应的标区加入Access-Control-Allow-Origin声明
mysql : 连线MySQL 资料库伺服存取资料的套件
ejs : 可搭配Express,一套U画面处理引擎


8.^是甚麽?,可以使用到哪个版本

  "dependencies": {
    "express": "^4.17.1",
    "ip": "^1.1.5"
  }

版本:
1.2.3
2.1.1
Major.Function.buildNumber
新版本.新增功能.制作Number

^山、~波

较宽松(通常)
^1.2.3
1.5.6(v)
1.999999(v)
2.0(X)

较严谨
~1.2.3
1.2.4
1.2.5
1.2.9999
1.3(X)


9.HTTP

https://ithelp.ithome.com.tw/upload/images/20210810/20137684kpEZ1bF0Sm.png

请求方法:
GET
POST
HEAD
PUT
DELETE
TRACE
OPTIONS
CONNECT


10.建立HTTP Server(express套件使用)

    var http = require('HTTP'); //建立http物件

    var server = http.createServer(function (req, res) {

    //成功 //res.write搭配writeHead档案类型
    res.writeHead(200, ('Content-Type': 'text/html'J);
    res.write('Node.js');
    res.end('Hello World');
    });

    server.listen(80);

11.nodemon 即时更新看code

https://ithelp.ithome.com.tw/upload/images/20210810/2013768401Tr03WNr5.png
1.选CND(重要***************在上方选)

npm install nodemon -g (-g全域安装)

C:\XXX\Node.js\Lab0809npm>npm install nademon -g

nodemon app.js


12.抓路径

    //使用express套件
    var express = require("express");
    var app = express();
    app.listen(3000);

    //1.使用3000
    app.get("/", function (req, res) {
        res.send("OK, Home page....");
    })

中介程序辅助:express.static

    // Pipeline, step 1
    var aMiddleWare = express.static("./public");
    app.use(   aMiddleWare   )

使用中介

    // Pipeline, step 2
    app.use("/member", member);

路由:Router

    var member = express.Router();
    member.get("/new", function (req, res) {
        res.send("Member New...")
    })
    member.get("/login", function (req, res) {
        res.send("Member Login")
    })

port号3000/中介使用/路由器
http://localhost:3000/member/new
http://localhost:3000/member/login

https://ithelp.ithome.com.tw/upload/images/20210810/20137684ZRH8DHJ6Yu.png
https://ithelp.ithome.com.tw/upload/images/20210810/201376849HkV2LhRvc.png


13.去大型化(页面程序码减少、收纳路由器)

主程序、中介index.js:static require

    var express = require("express");
    var app = express();
    app.listen(3000);

    // Pipeline, step 1
    var aMiddleWare = express.static("./public");
    app.use(   aMiddleWare   )

    // Pipeline, step 2
    var member = require("./member.js");
    app.use("/member", member);
    // http://localhost:3000/member/new
    // http://localhost:3000/member/login

副程序member.js: Router

    var express = require("express");

    var member = express.Router();
    member.get("/new", function (req, res) {
        res.send("Member New... V2")
    })
    member.get("/login", function (req, res) {
        res.send("Member Login V2")
    })

    module.exports = member;

14. use v.s get

1.get 直接指定  (特定路径) (较小) => 简单路由
2.use 可以广泛运用 (较大,抓中介:static、Router) =>模组化路由
    var r = express.Router()
    r.get('/login',function(req,res){})
    r.get('/new',function(req,res){})
    app.use('/member',r)

exit 关闭终端机
ctrl+C 关闭使用套件 or 重新输入指令

常备药
npm init -y
npm install express
nodemon index.js

var express = require("express");
var app = express();
app.listen(3000);


<<:  Day 45 (Node.js)

>>:  [ JS个人笔记 ] Promise —DAY9

【求职用词】求职相关缩写与用词解释

对於新鲜人,一开始求职可能会看不太懂的用词 / 英文缩写大杂烩。 常见职位 RD:研发设计工程师。就...

DAY9 样式属性权重 - Nav Bar实作之遇到的小卡顿

错误版 正确版 比对两个,发现哪里有bug了吗? 对就是,鼠标移开後,样式应该变回原本的,但它没有。...

Day20 JWT Token

What is JWT? JWT全名为JSON Web Token,是一种跨域认证的Solution...

Day14 开发套件 - 范例程序码介绍03 iOS 端

最後来看Native 端(iOS): 补充:iOS 中的 .h 和.m 档 .h 为标头档,做为宣告...

[Day11]Bangla Numbers

上一篇介绍了Cubes,主要是考回圈的运用及判断,仔细思考之後就会发现不是那麽困难了。 今天讲解的题...