nodejs大綱
9216 ワード
目次 nodejsは何ですか? は、nodejsを使用してサーバ(インターフェース) を作成する. nodejsのモジュールシステム nodejsファイルシステム パスモジュールpath npm関連 es 6クラス nodejsのkoaフレームワーク koaフレーム及びその他のnodejsフレーム 最初のkoaサービスハローワード を作成します.サーバの自動再配置 koaルーティング koaクロスドメイン設定 koaミドルウェア qlフレーム (一)nodejsとは何ですか?サーバで実行されるJavaScriptコード はサービスインターフェース を書くことができます. nodejsは、ローカルファイル を操作することができます.
(二)nodejsを使ってサーバーを作成する(インターフェース)
アプリ.jsコードは以下の通りです
(三)nodejsのモジュールシステム
モジュールのエクスポートとモジュールのインポートエクスポート用 導入用 例1:行列をエクスポートファイル を読みだします.書き込みファイル (五)パスモジュールパス
1. に変更する.__dirname (六)npm関係
目次 npmは何ですか? npmはnodejsモジュール(カバン)管理ツール です.モジュール保管サイトhttps://www.npmjs.com/ npm一般的な操作 初期化 nodejsモジュール をインストールします.更新nodejsモジュール nodejsモジュール を削除します.運転指令 (七)クラス定義「人類」 継承 (八)nodejsのkoaフレーム
文書の住所:https://koa.bootcss.com/
https://www.npmjs.com/package/koa koaフレーム及びその他のnodejsフレーム です. ハローワールド 初期化package.json インストール は、app.jsを作成します.コードは以下の です.起動サービス サーバが自動的に再起動されます. グローバル実装nodemonモジュール プロジェクトを起動する時、 を使用します.
koaルート インストール app.jsのコードは以下の通りです. 運転 ドメインをまたいでapp.jsに以下の言葉を追加すれば、簡単なクロスドメイン設定 ができます.
中間部品 中間部品は上から下まで を実行する.はnext()を呼び出して次の中間部品 を実行する必要があります.
(二)nodejsを使ってサーバーを作成する(インターフェース)
アプリ.jsコードは以下の通りです
var http = require('http');
http.createServer(function (request, response) {
// HTTP
// HTTP : 200 : OK
// : text/plain
response.writeHead(200, {
'Content-Type': 'text/plain'
});
response.end('Hello World');
}).listen(8888);
//
console.log('Server running at http://127.0.0.1:8888/');
nodejs app.js
を実行してサービスを開始します.(三)nodejsのモジュールシステム
モジュールのエクスポートとモジュールのインポート
module.exports
require
// m1.js
module.exports = [];
// index1.js
let list = require('./m1');
console.log(list);
実行index1.js
node index1.js
例2:関数をエクスポート// m2.js
function add(a,b) {
return a+b;
}
module.exports = add;
// index2.js
let add = require('./m2');
let sum = add(100, 200);
console.log('sum', sum);
実行index2.js
node index2.js
例3:オブジェクトをエクスポート// m3.js
var username = ' ';
var age = 100;
function say() {
console.log(' ' + username);
}
module.exports = {
username,
age,
say
}
// index3.js
let obj = require('./m3');
console.log(' ', obj.username);
obj.say();
実行index3.js
node index3.js
(四)nodejsファイルシステム// 1
input.txt ,
// index1.js
var fs = require("fs");
console.log(1);
//
fs.readFile('input.txt', function (err, data) {
console.log(2);
if (err) {
return console.error(err);
}
console.log(" : " + data.toString());
});
console.log(3);
// 2
var fs = require('fs');
//
var data = fs.readFileSync('input.txt');
console.log(" : " + data.toString());
console.log(" 。");
// 1
var fs = require("fs");
console.log(" ");
var str = ' ';
fs.writeFile('data.txt', str, function (err) {
if (err) {
return console.error(err);
}
console.log(' ')
});
// 2
var fs = require("fs");
var str = ' ';
fs.writeFileSync2('data.txt', str);
console.log(' ');
// trycatch
try {
fs.writeFileSync2('data.txt', str);
console.log(' ');
} catch (error) {
console.log(' ', error);
}
1.
path.join()
パス接続は互換性があり、以下の二つの印刷の結果は全部'
odejs\dist';
です.let path = require('path');
let str1 = path.join('/nodejs','dist');
console.log(str1);
let str2 = path.join('\
odejs','dist');
console.log(str2);
path.resolve()
は、経路を絶対パスlet path = require('path')
let str1 = path.resolve('nodejs', 'dist');
console.log('str1', str1);
let str2 = path.join('\
odejs', 'dist');
console.log('str2', str2);
let path = require('path');
console.log(__dirname); //
let str = path.resolve(__dirname, 'dist');
console.log('str', str);
目次
package.json
npm init //
npm init -y
npm i xxx // dependencies
npm i xxx -S //
npm i xxx --save-dev // devDependencies
npm i xxx -D //
npm i xxx -g //
npm i // node_modules , npm i
npm update xxx
npm uninstall xxx
npm run xxx
class Person {
// ( )
constructor(name, age, sex) {
this.name = name;
this.age = age;
this.sex = sex;
}
//
writeCode() {
console.log(this.name + ' ');
}
say() {
console.log(' :', this.name);
}
}
let p = new Person(' ', 28, ' ');
console.log('p', p); //
p.say(); // say
p.writeCode(); // writeCode
//
class Man extends Person {
constructor(name, age, sex) {
// ( )
super(name, age, sex);
this.haveBeard = true;
}
}
let man = new Man(' ', 18, ' ');
console.log(man);
man.say();
man.writeCode();
文書の住所:https://koa.bootcss.com/
https://www.npmjs.com/package/koa
express.js
フレームワークとkoa.jsフレームワークは同じチームで作ったegg.js
アリhapi.js
npm i koa
// koa
const Koa = require('koa');
//
const app = new Koa();
// ctx ,use ( )
app.use(ctx => {
// ctx.body
ctx.body = 'Hello Koa';
});
app.listen(3000);
node app.js
npm i nodemon -g
nodemon app.js node app.js
npm install koa-router
const Koa = require('koa');
const Router = require('koa-router');
const app = new Koa();
const router = new Router();
//
router.all('/city/add', (ctx, next) => {
ctx.body = ' ';
});
router.all('/city/getList', (ctx, next) => {
ctx.body = ' ';
});
router.all('/city/update', (ctx, next) => {
ctx.body = ' ';
});
router.all('/city/del', (ctx, next) => {
ctx.body = ' ';
});
//
app.use(router.routes());
app.listen(3000, () => {
console.log(' , http://localhost:3000')
});
nodemon app.js
app.use((ctx, next) => {
ctx.set("Access-Control-Allow-Origin", "*");
ctx.set("Access-Control-Allow-Methods", "PUT, POST, GET, DELETE, OPTIONS");
//
ctx.set(
"Access-Control-Allow-Headers",
`Content-Type, Content-Length, Authorization, Accept, X-Requested-With , yourHeaderFeild,x-token,sessionToken,token`
);
if (ctx.method == "OPTIONS") {
ctx.body = 200;
} else {
next();
}
})
// ( )
app.use((ctx, next) => {
ctx.username = 'lao hu';
console.log(1);
next();
})
app.use((ctx, next) => {
console.log(2);
console.log(ctx.username);
next();
})
app.use((ctx, next) => {
console.log(3);
next();
})
#### 7.
1. get
```
// get , ctx.request.query
(ctx, next) => {
// let name = ctx.request.query.name;
// let isHot = ctx.request.query.isHot;
//
let {name,isHot} = ctx.request.query;
}
```
2. post
* koa-body
```
npm i koa-body
```
* app.js
```
const koaBody = require('koa-body');
app.use(koaBody()); //
```
* post
```
// post , ctx.request.body
let {
pageNum
} = ctx.request.body;
console.log('pageNum', pageNum);
```
* ,
```
// get post
app.use((ctx, next) => {
ctx.params = {
...ctx.request.query,
...ctx.request.body
}
next();
})
```