课前回顾
静态服务器
url地址获取
fs文件操作
根据不同url返回不同页面
新内容(终端IO交互, web表单交互)
- 终端交互
io.js
var readline = require('readline'); // 引入交互模块
var sk = require('./shangke'); // 引入自定义模块, 这里的后缀.js可以加可以不加
var rl = readline.createInterface(process.stdin, process.stdout); //
rl.setPrompt('请输入:'); // 提示用户
rl.prompt(); // 实例化监听
rl.on('line', (line) => { // 读进内容
var str = line.trim();
if (str == '0') { // 如果用户输入0, 则退出
console.log('欢迎下次再来');
process.exit();
} else { // 否则, 通过自定义组件模块显示输入的内容
// console.log('你输入的是' + str);
sk.shangke(str); // 调用模块中的
sk.h(); // 调用模块中的hello
rl.prompt();
}
});// .on('close', () => {
// console.log('欢迎下次再来');
// process.exit();
// })
shangke.js
exports.shangke = function(str) { // 模块化
console.log('这是上课模块' + str);
}
function hello() {
console.log('this is hello');
}
exports.h = hello();
- web表单交互
通过引入模块querystring来和表单交互
var qs = require('querystring');
以下是node官方举例:
querystring.parse(str[, sep][, eq][, options])方法
querystring.parse('foo=bar&baz=qux&baz=quux&corge')
// returns { foo: 'bar', baz: ['qux', 'quux'], corge: '' }
// Suppose gbkDecodeURIComponent function already exists,
// it can decode `gbk` encoding string
querystring.parse('w=%D6%D0%CE%C4&foo=bar', null, null,
{ decodeURIComponent: gbkDecodeURIComponent })
// returns { w: '中文', foo: 'bar' }
querystring.stringify(obj[, sep][, eq][, options])方法
querystring.stringify({ foo: 'bar', baz: ['qux', 'quux'], corge: '' })
// returns 'foo=bar&baz=qux&baz=quux&corge='
querystring.stringify({foo: 'bar', baz: 'qux'}, ';', ':')
// returns 'foo:bar;baz:qux'
// Suppose gbkEncodeURIComponent function already exists,
// it can encode string with `gbk` encoding
querystring.stringify({ w: '中文', foo: 'bar' }, null, null,
{ encodeURIComponent: gbkEncodeURIComponent })
// returns 'w=%D6%D0%CE%C4&foo=bar'
注:
linux 下打压: tar zcvf lilei.tar.gz
linux 下解压: tar zxvf lilei.tar.gz
作业
实现一个计算器(页面, 后台, +, -, *, /, %)[querystring模块]