GithubHelp home page GithubHelp logo

learn-webapp-guideline's Introduction

learn-webapp-guideline's People

Contributors

antarts avatar cicilinwang avatar freedomsky11 avatar french5 avatar ideal-li avatar rushan-chen avatar shashawang avatar tiandimeihua avatar whate-8872 avatar xugy0926 avatar yangfan3211 avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar

learn-webapp-guideline's Issues

尽管使用了统一的错误处理机制,但是在第17个例子中,没有爆出想要的错误的提示

比如运行第17个案例,
在登录注册时故意输错
点击登录浏览器会报以下错误:

Failed to load resource: the server responded with a status of 500 (Internal Server Error)

而我们在处理api时,其实已经给出友好的错误的提示:比如用户不存在,密码有误等信息。而上面的错误不是我们想要的样子。

虽然使用了中间件errorHandel,但最终的错误处理是在app.js中处理的。
修改app.js 中错误处理的代码,比如新增自己对错误的处理,还是不行。甚至直接把render改为send都不奏效。

// error handler
app.use(function(err, req, res, next) {
  // set locals, only providing error in development
  res.locals.message = err.message;
  res.locals.error = req.app.get('env') === 'development' ? err : {};
****新增代码开始****
  if (err.status === 500 && req.baseUrl.startsWith('/api')) {
    res.send(err);
    return;
  }
****新增代码结束****
  // render the error page
  res.status(err.status || 500);
****改动代码开始****
  // res.render('error');
  res.send(err);
****改动代码结束****
});

所以,该如何解决这个问题呢?

此外:
既然我们使用errorHandel去处理错误,为何不直接把res也传进来,遇到错误,直接返回响应?而不像案例中那样继续next将错误留给app中的处理错误的中间件处理。

第6课,run auto-start 后rs 是指哪个键

Press rs for restarting the process.
rs应该就是指restart的缩写,但是电脑上好像没这个键啊。right shift 也不是。

ps.要是auto-start运行npm报错,看一下

"start": "node ./bin/www",
    "auto-start":

第一行最后逗号有没有漏

第8课 local变量来自哪?

第八课中

express已经帮我们构建好了查找view的位置和解析view的引擎。当我们要返回页面时,只要告诉res.render函数返回的页面的名字即可。

res.render('index', { title: 'Express' });

在官网学习到res.render()可以添加三个参数: 字符串、一个对象(local variable)、一个callback函数。

我的问题是,上面代码中的title,和下面代码中的name,这种local variable是在哪定义的呢?

// pass a local variable to the view
res.render('user', { name: 'Tobi' }, function(err, html) {
  // ...
});

第7课,关于文件创建

1.mkdir/md可以用来直接创建文件夹,那么有没有哪个命令可以直接创建文件的。
比如,new 'hellojs.js'这样?

2.关于目录的命令不懂。根据上下文./指当前目录下,那么../是指上级目录吗?

Express : res.render(...,{...})时导入的数据怎么在一般js中使用。

view/post.ejs

<!DOCTYPE html>
<html>

<head lang="en">
  <meta charset="UTF-8">
  <title>cnode·Supported by Vue</title>
</head>

<body>
<% var postId = _id %>

<h1>_id : <%= _id %></h1>
<p>postId : <%= postId %></p>
<div id="app">
<h1>{{ detailData.content }}</h1>
<p>{{ post_id }}</p>

</div>
</body>

<script src="https://unpkg.com/vue"></script>
<script src="https://unpkg.com/axios/dist/axios.min.js"></script>
<script type="text/javascript">
var postId = '12345654321';
var app = new Vue({
    el: "#app",
    data: {
      detailData : {
      	content:'zjutszl'
      },
      post_id:postId
    }
})
</script>

</html>

routes/post.js

var express = require('express');
var router = express.Router();

/* GET users listing. */
router.get('/', function (req, res, next) {
    res.render('post_detail', {_id:req.query.id});
});


module.exports = router;

页面显示

alt

添加一行定义 [var postId = '12345654321']

alt

修改后页面显示

alt


为了阅读方便,先放了代码,图片在后面。

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.