当前位置: 首页 > news >正文

可以用tomcat.做网站吗网站开发绩效考核与薪酬

可以用tomcat.做网站吗,网站开发绩效考核与薪酬,wordpress首页怎么用ftp修改,陇西做网站的公司一、node.js服务器动态资源处理与静态资源处理的区别#xff1f; 静态与动态服务器主要区别于是否读取数据库#xff0c;若然在数据库中的资料处理中将数据转换成可取用格式的结构#xff0c;也就是说把对象转化为可传输的字节序列过程称为序列化#xff0c;反之则为反序列…一、node.js服务器动态资源处理与静态资源处理的区别 静态与动态服务器主要区别于是否读取数据库若然在数据库中的资料处理中将数据转换成可取用格式的结构也就是说把对象转化为可传输的字节序列过程称为序列化反之则为反序列化。 简单来说它比起静态资源较复杂因为它会随用户不同、响应内容不同而不断产生变化 二、什么是动态资源处理 以JSON与JS为例JSON.stringify()对数据序列化JSON.parse()对数据反序列化。动态处理也就是对数据进行重新排序来读写数据库读取反序列化写入序列化。 三、处理动态资源的方法 将页面内容动态化。使用到第三方模块——模板引擎  去动态将我的数据嵌入到我的网页中去。 什么是模板引擎见 http://t.csdnimg.cn/lzedW 四、代码示例。 1我们将首页、登录、注册三个html静态页面和用户列表users.html写在views这个大文件夹下。css样式和images图片放入public这个大文件夹下。创建一个data大文件夹data下面建一个user.json文件来专门存储用户数据简单写一下首页、注册、登录页面的html静态页面的样式。此处省略。具体见我上篇博客见 http://t.csdnimg.cn/zXWW7 动态资源处理具体表现就是我的用户列表渲染功能users.html和我的不同错误提示功能404.html。 用户列表渲染功能可以将我的user.json里面注册成功的用户数据渲染到我的服务器用户列表页面 users.html 用户列表 !DOCTYPE html html langen headmeta charsetUTF-8title用户列表/titlelink relstylesheet href../public/css/main.css /head bodyh1用户列表/h1img src../public/images/01.png altbrul!-- 循环li --% for(let username in users){ %li!-- 取出属性名和密码这个属性值放入li里面 --%username % : %users[username] %/li% } %/ul /body /html 404.html  不同错误提示 !DOCTYPE html html langen headmeta charsetUTF-8title404/title /head stylebody {background-color:pink;} /style bodyh1!-- 定义模板 --% msg %/h1 /body /html 2在我的测试代码的终端 npm install underscore -save安装underscore渲染模板引擎 3 测试代码如下 const http require(http); const fs require(fs); const path require(path); const url require(url); // 声明一个专门存放所有用户的变量 var users; // 导入查询参数的模块 const querystring require(querystring); // 导入underscore渲染模板 const _ require(underscore); //使用underscore渲染模板 function render(data){// 读取模板内容let tempfs.readFileSync(path.join(__dirname,views/404.html));// 获取渲染函数let compiled_.template(temp.toString());// 渲染模板return compiled(data); } //创建服务器 const server http.createServer(); //读取文件。读取user.json存放用户数据的文件 fs.readFile(path.join(__dirname, data/users.json), (err, data) {if (err) {users {};} else {users JSON.parse(data.toString()); //如果读取正确就将读到的内容转换为一个对象存到users里} }) //服务器做出请求响应 server.on(request, (req, res) {let objurl url.parse(req.url); //将url转为一个对象才能获取到它的pathnamelet pathname objurl.pathname;// 对pathname做处理if (pathname.startsWith(/public)) {// 找到当前项目文件夹再将相对路径转为绝对路径let p path.join(__dirname, pathname);fs.readFile(p, (err, data) {if (err) {res.end(render({msg:访问的文件不存在})); //可以使用中文因为现在是html页面去显示的} else {res.end(data);}})} else if (pathname / || pathname /home) {let p path.join(__dirname, views/index.html);fs.readFile(p, (err, data) {if (err) {res.end(render({msg:访问的文件不存在}));} else {res.end(data);}})} else if (pathname /regist) { //建一个文件夹data专门来储存数据 里面建一个users.json的文件let p path.join(__dirname, views/regist.html);fs.readFile(p, (err, data) {if (err) {res.end(render({msg:访问的文件不存在}));} else {res.end(data);}})} else if (pathname /login) {let p path.join(__dirname, views/login.html);fs.readFile(p, (err, data) {if (err) {res.end(render({msg:访问的文件不存在}));} else {res.end(data);}})} else if (pathname /doRegist) {// Node.js 的 querystring 模块用于解析和格式化 URL 查询字符串// 1. 将字符串参数解析成对象// querystring.parse(url)// 2. 将对象参数解析成字符串// querystring.stringify(urlObject)let query querystring.parse(objurl.query);let username query.username;let password query.password;if (users[username]) {res.end(render({msg:用户名已存在不能注册}));} else {//因为users里面是一个对象。所以只能属性名值的形式。故属性名 密码密码相当于这个属性名对应的属性值users[username] password;//利用JSON.stringify(users)将users对象转为字符串重新写到文件里去fs.writeFile(path.join(__dirname, data/users.json), JSON.stringify(users), (err) {if (err) {res.end(render({msg:注册失败}));} else {res.end(render({msg:注册成功}));}})}} else if (pathname /doLogin) {let query querystring.parse(objurl.query);let username query.username;let password query.password;// 判断users的用户名和密码有无if (users[username] users[username] password) { //用户名 密码res.writeHead(200, { Content-Type: text/html;charsetutf-8 });res.end(render({msg:登录成功}));} else {res.writeHead(502, { Content-Type: text/html;charsetutf-8 });res.end(render({msg:用户名或密码错误登录失败}));}} else if (pathname /list) {let ppath.join(__dirname,views/users.html);fs.readFile(p,(err,data){if(err){res.end(render({msg:访问的文件不存在}));}else{//获得渲染函数 let compiled_.template(data.toString()); // 调用渲染函数来生成html内容let htmlcompiled({users:users}); //我们在模板里取的是users的属性所以不能简写成users而是usersusersres.end(html);}})} });server.listen(3000, 127.0.0.1, () {console.log(Server is running at http://127.0.0.1:3000); }) 4结果显示 4-1》当我的用户数据已被注册时 动态显示我的404.html页面 4-2》我完成用户注册时我点击用户列表显示结果如下 5综上所述相比我的静态资源处理而言我的动态资源处理就相对效率较高对于不同的错误信息我可以直接使用我的404.html模板直接在我的运行代码中显示 res.end(render({msg:错误内容})); 并且我可以直接使用用户数据模板user.html使用% % 执行javascript代码。可以直接在我的服务器端页面展示我的所有成功注册的用户数据。化繁为简。
http://www.hkea.cn/news/14364391/

相关文章:

  • 如何编辑网站标题潍坊个人网站制作
  • 怎么做电玩网站网站正能量免费软件
  • 网站开发哪家公司葫芦岛做网站的公司
  • 服务器部署php网站徐州网站建设
  • 图片展示网站php源码河北企业建站系统信息
  • 怎么做网站板块seo自媒体运营技巧
  • 网站服务器安装教程视频部队网站建设设计
  • 网站开发示例最佳线上网站制作模板
  • wordpress对接静态网页优化网站图片
  • 网站建设的大公司排名wordpress添加人型插件
  • 怎么学建网站今天的新闻内容
  • 印刷做网站网上接单重庆网站建设 夹夹虫
  • 有哪些做公司网站it软件开发培训机构
  • 网站建设-丹东如何打百度人工电话
  • 网页制作与网站建设期末考试响应式 官网网站
  • 手机网站定制 杭州建站视频
  • 郑州网站托管公司在百度备案网站
  • 贵州建设厅网站二建电商网站 性能目标有哪些
  • 域名连接网站wordpress图片用相对路径
  • 做网站客户没有付定金公司网站建设维护的岗位
  • 创建网站是怎么赚钱的网站权重是怎么提升的
  • 求职网站开发开题报告Pc端网站是什么意思
  • 网站视频放优酷里面怎么做十大免费音乐网站
  • 怎么用自己的主机做网站服务器吗手机网站大全123456
  • 外卖网站建设文档汕头网站制作哪家强
  • 修改网站的设计数据库查询网站模板
  • 哪里可以做网站优化一般通过什么渠道了解防灾减灾知识
  • 常州市建设局网站安卓手机软件开发平台
  • 潍坊网站建设500wordpress升级php异常
  • 黄冈网站制作wordpress 4.5.9