MongoDB值增加一次后不增加

时间:2019-10-17 08:38:01

标签: node.js mongodb express mongoose backend

我一直在研究一个用于URL缩短的项目,每次有人点击该api或提出一个views请求时,我都会尝试在其中递增get。我不知道出了什么问题,但是视图只增加了一次。

enter image description here

这是我编写的用于每次获取请求时增加视图的代码。

我不知道出了什么问题,我已经搜索了很多论坛,stack overflowarticles已经问过问题。

注意-

  • views的默认值为0herepost请求中的值。
  • 截至目前,
  • 由生成的不同用户是伪值。
  • 猫鼬模式链接-link
  • 我正在使用 nodejs,expressjs,mongodb(数据库),mongoose(orm),pugjs(视图引擎)创建该项目。
  • 项目链接:link

这是文件树

├── LICENSE
├── README.md
├── client
│   ├── assets
│   │   ├── bg.svg
│   │   ├── favicon
│   │   │   └── favicon.ico
│   │   └── fonts
│   │       ├── Apercu\ Medium.woff
│   │       ├── Apercu\ Mono.woff
│   │       └── Apercu_Regular.woff
│   ├── css
│   │   └── style.css
│   ├── index.html
│   └── js
│       └── script.js
├── index.js
├── models
│   ├── admin_model.js
│   └── urlshorten.js
├── package-lock.json
├── package.json
├── routes
│   ├── admin.js
│   ├── auth.js
│   ├── custom.js
│   ├── stats.js
│   └── urlShorten.js
├── static
│   ├── css
│   │   └── style.css
│   ├── favicon.ico
│   ├── fonts
│   │   └── Inter-Regular.woff
│   └── urlshort.gif
└── views
    ├── index.pug
    └── script.js

1 个答案:

答案 0 :(得分:3)

简单来说:

1. It is because of 301 Status Code for Redirect you are using.
2. 301 Status Code represents a Permanent Redirect.
3. The browser stores the main URL in the memory.
4. The next time you request the short link from your browser, it gets the Original
   URL from its memory and sends you there, without going through the Server.
5. Since the request doesn't go through the server, the server fails to increment it.

解决方案:

将301(永久)状态代码更改为307(临时)状态代码。

FILE: ShortLink/routes/urlShortner.js

Change the below lines

Line 37:  res.writeHead(301, {
Line 38:      Location: url.inputUrl
Line 39:  });

to

Line 37:  res.writeHead(307, {
Line 38:      Location: url.inputUrl
Line 39:  });

我还向您的Github Repo创建了拉取请求,您可以进行验证。