因为我本人是JS hacker, 就用JS做一次吧。
首先,我复制了radio的代码,并作了一些细微的重构。功能完全一致。
<code class="language-js">var http=require('http');
var express=require('express');
var session=require('express-session');
var bodyParser=require("body-parser");
var app = express();
app.use(bodyParser.urlencoded({ extended: false }));
app.use(session({secret: '123456',name:'session',cookie: {maxAge: 3600000},resave: false,saveUninitialized: true}));
//tag generator
var tg = (name,content,props)=>`<${name} ${props||''}${content?'':' '}>${content||''}${content?'':''}`
var htmlWrap = (content)=>tg('html',tg('body',content))
var textInput = (name)=>tg('input',null,'name="'+name+'" type="text"')
var submit = tg('input',null,'type="submit"')
//form generator
var fg = (content)=>tg('form',content,'action="sub" method="post"')
var formHTML = htmlWrap(fg(textInput('t')+submit))
var clickHTML = htmlWrap(tg('a','请点这里','href="/text"'))
app.get('/', function(req, res) {
res.send(formHTML);
});
app.post('/sub',function(req,res){
req.session.text=req.body.t;
res.send(clickHTML)
});
var textToHTML = (text)=>htmlWrap(text)
app.get('/text',function(req,res){
res.send(textToHTML(req.session.text||'....'))
});
app.listen(9001,()=>{console.log('listening on 9001');});
</${name}></code>
但是我觉得:这不清真。表达仍然太冗长、太不自然了。我准备写个清真的版本。
200字以内,仅用于支线交流,主线讨论请采用回复功能。