TIL28: Node Sever
14852 ワード
Create Node Server
const http = require('http');
const server = http.createServer();
server.on('request', (request, response) => {
// Do something
}).listen(8080);
またはconst http = require('http');
http.createServer((request, response) => {
// Do something
}).listen(8080);
Node Server Exampleconst http = require('http');
const server = http.createServer((request, response) => {
/* Error check for request */
request.on('error', (err) => {
console.error(err);
response.statusCode = 400;
response.end();
});
/* Error check for response */
response.on('error', (err) => {
console.error(err);
});
/* Handle request body */
let body = [];
request.on('data', (chunk) => {
body.push(chunk);
});
const { method, url } = request;
if (method === 'OPTIONS') {
/* Set status code and header */
response.statusCode = 200;
response.setHeader(defaultCorsHeader);
/* Or the 2 lines above could be replaced with this below one line */
// response.writeHead(200, defaultCorsHeader);
} else if (method === 'POST' && url === '/echo') {
request.on('end', () => {
/* Handle request body's data */
body = JSON.parse(Buffer.concat(body).toString());
/* Set header and status code */
const header = defaultCorsHeader;
header['Content-Type'] = 'application/json';
response.writeHead(201, header);
response.write(JSON.stringify(body));
response.end();
/* Or the 2 lines above could be replaced with this below one line */
// response.end(JSON.stringify(responseBody));
});
} else {
/* Handle else case */
res.statusCode = 404;
res.end();
}
});
const PORT = 8080;
const ip = 'localhost';
server.listen(PORT, ip, () => {
console.log(`http server listen on ${ip}:${PORT}`);
});
/* Default cors header */
const defaultCorsHeader = {
'Access-Control-Allow-Origin': '*',
'Access-Control-Allow-Methods': 'GET, POST, PUT, DELETE, OPTIONS',
'Access-Control-Allow-Headers': 'Content-Type, Accept',
'Access-Control-Max-Age': 10
};
コードおよびリソースソース:nodejs.org、コードステータスReference
この問題について(TIL28: Node Sever), 我々は、より多くの情報をここで見つけました https://velog.io/@charlie-lyc/TIL28-HTTP-Transaction-in-Node-Severテキストは自由に共有またはコピーできます。ただし、このドキュメントのURLは参考URLとして残しておいてください。
Collection and Share based on the CC Protocol