专栏首页javascript艺术nodeJs写一个新增事件代办项程序

nodeJs写一个新增事件代办项程序

nodeJs写一个新增事件代办项程序

01

创建一个01.js;

引入nodejs的http模块;

并监听8000端口

let http = require('http');

let list = require('./listFn');

let server = http.createServer( (req, res) => {

console.log(req.url);

if ('/' == req.url){

switch (req.method){

case 'GET' :

list.show(res);

break;

case 'POST' :

list.add(req, res);

break;

default:

list.badRequest(res);

}

}else{

list.notFound(res);

}

});

server.listen(8000);

02

创建一个再创建一个listFn.js,写事件,并在01js里引用listFn.js

let qs = require('querystring');

let items = [];

module.exports = {

show: (res) => {

//嵌入一个html取代模板

let html = `

<!DOCTYPE html>

<html>

<head>

<meta charset="UTF-8">

<title>Todo List</title>

</head>

<body>

<h1>Todo List</h1>

<ul>` +

items.map( (item) => {

return `<li> ${item} </li>`

}) +

`</ul>

<form action="/" method="post">

<p>

<input type="text" name="item">

</p>

<p>

<input type="submit" value="add item">

</p>

</form>

</body>

</html>`;

//设置响应的头部信息

res.setHeader('Content-Type', 'text/html');

//使用字符串长度

res.setHeader('Content-Length', Buffer.byteLength(html));

//结束请求

res.end(html);

},

notFound(res){

// 函数接收响应对象,将状态码设为404,响应主体设为not found

res.statusCode = 404;

res.setHeader('Content-Type', 'text/plain');

res.end('Not Found');

},

badRequest(res){

// 向客户指明该请求无效

res.statusCode = 400;

res.setHeader('Content-Type', 'text/plain');

res.end('Bad Request');

},

add(req, res){

let body = '';

req.setEncoding('utf8');

req.on('data', (chunk) => {

body += chunk

});

req.on('end', () => {

let obj = qs.parse(body);

items.push(obj.item);

this.show(res);

})

}

}

03

启动服务

然后浏览器登录localhost:8000;

能看到页面

本文分享自微信公众号 - javascript艺术(gh_4e5484fd6b52),作者:javascript艺术

原文出处及转载信息见文内详细说明,如有侵权,请联系 yunjia_community@tencent.com 删除。

原始发表时间:2018-07-01

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

我来说两句

0 条评论
登录 后参与评论

相关文章

  • Python/NodeJS坑记

    自从学了Python和NodeJS,每每在写新的程序之前我就会问自己:到底用Python好,还是用NodeJS好?两者都能进行快速开发,并且各有千秋。 现在就...

    py3study
  • 如何提高后台服务应用问题的排查效率?日志 VS 远程调试

    公众号更新的频率降低,不是因为Jerry偷懒,而是由于从春节过后,我所在的SAP成都研究院数字创新空间整个团队,一直在忙一个5月份需要交付的项目上。

    Jerry Wang
  • NodeJS知识点梳理-第一篇

    或者我们直接运行一个我们本地的js也是一样的,直接node csdn_demo.js

    何处锦绣不灰堆
  • 当一个程序员写不出代码了,该怎么办?

    你已经对着电脑 N 个小时了。不知道该写什么代码,或者一种摔键盘的冲动正在你的胸中酝酿。 咖啡一杯接着一杯。不敢再喝了,因为搞不好要有副作用了,心跳加速,身体不...

    非著名程序员
  • 当一个程序员写不出代码了,该怎么办?

    你已经对着电脑n个小时了。不知道该写什么代码,或者一种摔键盘的冲动正在你的胸中酝酿。

    哲洛不闹
  • 当一个程序员写不出代码了,该怎么办?

    你已经对着电脑n个小时了。不知道该写什么代码,或者一种摔键盘的冲动正在你的胸中酝酿。

    恒宇少年
  • 没钱买服务器?怎么才能搭建一个自己的博客

    相信每一个人都有一个自己博客的梦想,有些朋友可能在上大学,没有钱,空有技术,但是不想买花钱买服务器搭网站,今晚,我来教大家怎么免费搭一个博客.

    会呼吸的Coder
  • Nodejs全栈入门-慕课网

    这两天在慕课网看了一个关于Nodejs比较基础的视频教程Nodejs全栈入门-慕课网,适合初学者进行学习,介绍了Nodejs相关的基本环境(安装nodejs、n...

    ccf19881030
  • 编程语言之间的差别真有那么大吗?

    软件开发是一种特殊的职业,特殊到有点匪夷所思,行业从业人员的工种分类非常的不稳定, 比如说古时候有C工程师、C++工程师、VB工程师,后来有了Java工程师、....

    用户1608022

扫码关注云+社区

领取腾讯云代金券