问答文章1 问答文章501 问答文章1001 问答文章1501 问答文章2001 问答文章2501 问答文章3001 问答文章3501 问答文章4001 问答文章4501 问答文章5001 问答文章5501 问答文章6001 问答文章6501 问答文章7001 问答文章7501 问答文章8001 问答文章8501 问答文章9001 问答文章9501

NodeJS+Express开发web,为什么中文显示为乱码

发布网友 发布时间:2022-04-08 01:30

我来回答

2个回答

懂视网 时间:2022-04-08 05:51

上面我们已经生成好了app原型,接着我们设计数据库

cmd命令行里:

mongo #进入数据库
use hello-world #创建项目数据库
db.addUser("shuaige", "123456") #这个数据库创建了一个叫帅哥的账号,密码123456 (但是我觉得可能我理解的不到位,你也可以不做这个操作)
#然后,我们就为这个hello-world数据库创建collection(collection就相当于oracle和mysql里的table)
db.createCollection("users") #创建一个集合,也就是表
db.users.insert({userid: "admin", password: "123456"}) #给users里添加一个文档,也就是一条记录账号admin,密码123456
ok,现在检查一下:
db.users.find() #如果看到你刚刚添加的文档记录,就ok咯

简单的数据库集合以及文档设置好,我们就回到express创建的node项目里,我们需要:

  • 在models下创建一个user.js,作为实体类映射数据库的users集合
  • 在views下做几个页面(可以用ejs也可以用html,我就用ejs吧)
  • 在routes下的index.js配置路由,也就是请求映射处理
    1. 在models下创建一个user.js,作为实体类映射数据库的users集合
      user.js
      1 var mongoose = require("mongoose"); // 顶会议用户组件
      2 var Schema = mongoose.Schema; // 创建模型
      3 var userScheMa = new Schema({
      4  userid: String,
      5  password: String
      6 }); // 定义了一个新的模型,但是此模式还未和users集合有关联
      7 exports.user = mongoose.model(‘users‘, userScheMa); // 与users集合关联

       

    2. 在views下面建index.ejs, errors.ejs, login.ejs, logout.ejs, homepage.ejs。 (index是自带的,不用建)
      index.ejs 

       1 <!DOCTYPE html>
       2 <html>
       3 <head>
       4 <title><%= title %></title>
       5 <link rel=‘stylesheet‘ href=‘/stylesheets/style.css‘ />
       6 </head>
       7 <body>
       8 <h1>Hello World</h1>
       9 <p>Welcome to <%= title %></p>
      10 <p><a href="login">登陆</a></p>
      11 </body>
      12 </html>

      login.ejs

       1 <!DOCTYPE html>
       2 <html>
       3 <head>
       4 <title><%= title %></title>
       5 <link rel=‘stylesheet‘ href=‘/stylesheets/style.css‘ />
       6 </head>
       7 <body>
       8 <h1>Hello World</h1>
       9 <p>Welcome to <%= title %></p>
      10 <form action="homepage" method="post">
      11  <p>
      12  <span>userId:</span>
      13  <br>
      14  <input id="userid" name="userid" type="text">
      15  </p>
      16  <p>
      17  <span>password:</span>
      18  <br>
      19  <input id="password" name="password" type="password">
      20  </p>
      21  <p><input type="submit" value="submit"></p>
      22 </form>
      23 </body>
      24 </html>

      logout.ejs

       1 <!DOCTYPE html>
       2 <html>
       3 <head>
       4 <title><%= title %></title>
       5 <link rel=‘stylesheet‘ href=‘/stylesheets/style.css‘ />
       6 </head>
       7 <body>
       8 <h1>Hello World</h1>
       9 <p>Welcome to <%= title %></p>
      10 <p>正在登出...</p>
      11 <script type="text/javascript">
      12  setTimeout(function(){
      13   window.location.href = "/";
      14  }, 500);
      15 </script>
      16 </body>
      17 </html>

      homepage.ejs

       1 <!DOCTYPE html>
       2 <html>
       3 <head>
       4 <title><%= title %></title>
       5 <link rel=‘stylesheet‘ href=‘/stylesheets/style.css‘ />
       6 </head>
       7 <body>
       8 <h1>Hello World</h1>
       9 <p>Welcome to <%= title %></p>
      10 <p><a href="logout">登出</a></p>
      11 </body>
      12 </html>

      error.ejs 出错页面,我没做,你有兴趣可以自己试试玩玩。 

    3. 在routes下的index.js配置路由,也就是请求映射处理
      index.js
       1 var express = require(‘express‘);
       2 var router = express.Router();
       3 var mongoose = require(‘mongoose‘);
       4 var user = require(‘../models/user‘).user;
       5 mongoose.connect(‘mongodb://localhost/hello-world‘);
       6 
       7 /* GET home page. */
       8 router.get(‘/‘, function(req, res) {
       9 res.render(‘index‘, { title: ‘index‘ });
      10 });
      11 
      12 /*login*/
      13 router.get(‘/login‘, function(req, res) {
      14 res.render(‘login‘, { title: ‘login‘ });
      15 });
      16 
      17 /*logout*/
      18 router.get(‘/logout‘, function(req, res) {
      19 res.render(‘logout‘, { title: ‘logout‘ });
      20 });
      21 
      22 /*hompage*/
      23 router.post(‘/homepage‘, function(req, res) {
      24 var query_doc = {userid: req.body.userid, password: req.body.password};
      25 (function(){
      26  user.count(query_doc, function(err, doc){
      27  if(doc == 1){
      28   console.log(query_doc.userid + ": login success in " + new Date());
      29   res.render(‘homepage‘, { title: ‘homepage‘ });
      30  }else{
      31   console.log(query_doc.userid + ": login failed in " + new Date());
      32   res.redirect(‘/‘);
      33   }
      34  });
      35  })(query_doc);
      36 });
      37 
      38 module.exports = router;

      ok,基本上大功告成,可以试试咯。

    下面讲讲如何调试服务器端的代码:

    我们最好借助一个叫node-inspector的工具包

    npm i -g node-inspector #安装node-inspector

    然后在cmd里运行

    node-inspector

    再新打开一个cmd,cd到项目hello-world目录下

    node --debug ./bin/www (或者 node --debug-brk ./bin/www , 旧版本express创建的node程序请使用 node --debug app.js)

    在浏览器里打开http://127.0.0.1:8080/debug?port=5858
    再新建窗口打开http://127.0.0.1:3000/
    就在浏览器可以调试服务器端代码。

    使用nodejs+express+mongodb开发web的例子

    标签:

    热心网友 时间:2022-04-08 02:59

    npm install -g nodegrass //安装此模块使用 var gs = require('nodegrass'); gs.get('http://www.jd.com', function(data){ console.log(data);//将data输出即使中文 }, 'gbk').on('error',funtion(err){ console.log(err); }); 可以查查nodegr...
    如何用express nodejs 创建web服务器

    1、打开Dreamweaver,按照图中标示出来的地方点击,打开站点管理界面。如果原来没有站点,这里会直接显示管理站点,直接点击就行。2、在弹出的管理站点界面,点击新建按钮,进入站点配置界面 3、在站点配置界面,输入站点的名称,这里是方便自己本地管理的,在站点文件夹下选择本地的网站文件夹。4、选择左侧...

    基于node开发的网站?

    2、nodehello.js目前,Node.js在大部分领域都占有一席之地,尤其是I/O密集型的。比如Web开发,微服务,前端构建等。3、使用express。Express是一个基于Node.js平台的极简、灵活的web应用开发框架,它提供一系列强大的特性,帮助你创建各种Web和移动设备应用。4、node.js是有windows实现版本的,请到它的...

    nodejs并发web框架?

    3、Express是一个nodejs的web开源框架,用于快速的搭建web项目。其主要集成了web的http服务器的创建、静态文本管理、服务器URL地址请求处理、get和post请求处理分发、session处理等功能。使用方法,在cmd中打开你所想创建web项目的路径。4、Node.js是一个基于ChromeV8引擎的JavaScript运行环境。Node.js使用了...

    nodejs后端开发框架(node后端框架)

    3、Express是基于Node.js平台,快速、开放、极简的Web开发框架,老牌框架,很多流行的框架的基石,简单且扩展性强,适合做个人项目,自身缺少约束。Koa是基于Node.js平台的下一代web框架,由Express原班人马打造。4、Node.js里的Web框架分为API框架和Web应用框架。前者能够开发出RESTful的API,后者也能开...

    nodejs内置模块有哪些

    一、Express框架 前面的章节已经介绍过了,可以使用npm来安装node.js模块。具体操作请参照以前写的nodejs概论。 Express是一个nodejs的web开源框架,用于快速的搭建web项目。其主要集成了web的http服务器的创建、静态文本管理、服务器URL地址请求处理、get和post请求处理分发、session处理等功能。 使用方法,在cmd中打开你...

    express nodejs怎么使用

    Express 是一个简洁、灵活的 node.js Web 应用开发框架, 它提供一系列强大的特性,帮助你创建各种 Web 和移动设备应用。1.express组织结构 app demo |---node_modules---用于安装本地模块。|---public---用于存放用户可以下载到的文件,比如图片、脚本、样式表等。|---routes---用于存放路由文件。

    nodejs之http模块

    nodejs提供给了我们http模块,http有两个作用 1、搭建服务端,express就是基于http.createServer 2、做客户端,向其他服务端请求Agent模块 http协议是通过,浏览器发送请求,服务端响应请求这种方式交互,每次交互都需要进行,建立-传输-销毁的过程,http提供了持久连接即已经通过的连接可以重复使用,在客户端这个操作是浏览器完...

    为什么使用nodejs 后台 express

    你要明白,express是nodejs的一个非常优秀的mvc框架,他对nodejs做了一定的封装,以方便程序员建立自己的web应用,而不需要再使用nodejs原始的方法创建http服务。他只是一个工具,一个nodejs的模块。所以你感觉你在使用express。

    如何选择Node.js Web开发框架

    Sinatra风格是指高度可配置,注重开发的自由度。代表性的Nodejs Web框架有:Express(官网、Github、NPM)TJ大神开发,Node.js官方推荐 hapi(官网、Github、NPM)koa.js(官网、Github、NPM)flaliron(官网、Github、NPM)total.js(官网、Github、NPM)locomotive(官网、Github、NPM)Rails风格则是指不...

    如何一体化一个NodeJs的MVC开发框架

    本框架适合使用NodeJs进行web开发的MVC框架模式,本框架使用了express框架作为nodejs的web开发支撑,使用mysql作为数据库开发源,下面我们就简单的介绍如何利用本框架进行一个简单的web应用开发。当然本框架并非官方,也并非专业设计,希望开发者共同来把本框架设计好,以便我们可以在国内实现一个NodeJs的Web开...

    websocket中文乱码 java中怎么解决中文乱码 web项目页面中文乱码 socket传中文乱码 html页面中文乱码怎么解决 js解决中文乱码 java出现中文乱码
    声明声明:本网页内容为用户发布,旨在传播知识,不代表本网认同其观点,若有侵权等问题请及时与本网联系,我们将在第一时间删除处理。E-MAIL:11247931@qq.com
    河北省安全生产监督管理局人员编制 河北省安全生产监督管理局其他事项 河北省安全生产监督管理局主要职责 硬盘里莫名其妙地丢了空间是怎么回事啊? ...但磁盘显示占用空间为60G,这22G去哪了?隐藏的备份文件才1G多。_百度... 刚把删除到回收站的文件还原了,但是在原盘里却找不到 为什么?,那可是22... 我的电脑C盘221G 提示已用50G 可是我的C盘里只有22G的东西 其余的空间... 为什么我硬盘里面删除了文件却没减少空间??哪位大老教教俺啊!!_百度... F盘有30G,属性显示占用了22G还有8G空间,可是我把所有文件加起来只有15G... 我的电脑F盘的空间明明只用了22G,但是属性里显示却有30G。高手解释一下... 如何去除黑眼圈,眼霜的正确使用方法 以前微信绑定银行卡,以前的不用了,请问怎么才能解除绑定? 快速去除黑眼圈眼霜 ?推荐下 广州儿童医院能治癫痫病吗 幼儿癫痫病频繁发作怎么办?如何急救 黑龙江儿童癫痫病哪里治的好 儿童癫痫病在哈尔滨哪里治 /中医治疗小儿癫痫病,武汉治疗癫痫最好的医院在哪儿? jorya是什么等级的牌子啊?适合什么样的人? 王府井百货大楼女装品牌 小儿癫痫病治疗在深圳哪里治疗好?小儿癫痫病有什么好的治疗方法? 卓雅真皮包包的质量怎么样 治疗儿童癫痫病的医院哪家比较好 小儿癫痫北京哪个医院看的权威 我泪沟很深有黑眼圈,用了眼霜,中药,怎么办 去治疗儿童癫痫,什么地方好呢 儿童癫痫最好医院是哪里 鱼用酒精能杀死螨虫吗? 治疗儿童癫痫病国内哪家医院最权威? 目前我们国家对治疗儿童癫痫病最好的医院是哪里 58岁女士白户按揭车贷容易通过吗 安卓王者换苹果了账号还在吗我想问一下我以前在安卓玩,现在换苹果手机我登上会被清空吗? 安卓机换苹果机后王者荣耀账号没了怎么办,区也没有了? 情侣第一次旅行时,适合去哪里? 王者荣耀安卓系统转苹果系统之前手机号没用了怎么办? 我现在是安卓手机如果换了苹果手机我的王者荣耀号会有变化吗? 我现在用安卓手机注册王者荣耀账号,再用苹果手机登录,资料会保存吗? 王者荣耀我刚开始是用安卓系统玩的现在换苹果了,还是原来的那个微信原来的那个区,英雄什么的还有吗?还 情侣必去的旅游胜地 把王者荣耀微信安卓系统封了账号,转移苹果系统,能到达解封效果吗? 王者荣耀王者荣耀安卓手机转移到苹果手机上苹果手机账号上得皮肤还在嘛? 王者荣耀我本来是安卓手机 又换了苹果用了三年我又在苹果上面注册了账号 安卓转苹果 苹果的东西还在吗? 情侣适合去哪旅游? 王者荣耀我安卓转到苹果 那安卓区的好友列表还会有我吗? 王者荣耀安卓转到苹果健康系统会解除吗?还是会在苹果手机上? 小米mix可以分屏吗,在哪里设置 有什么地方适合情侣们去玩的? 我们要保护动物英文怎么说 情侣必去的十大旅游胜地 诺基亚蓝牙立体声耳机 BH-503 我的N85能用嘛?怎么配对呢?