最新消息:雨落星辰是一个专注网站SEO优化、网站SEO诊断、搜索引擎研究、网络营销推广、网站策划运营及站长类的自媒体原创博客

Post方法后重定向,expressjs

运维笔记admin7浏览0评论

Post方法后重定向,expressjs

Post方法后重定向,expressjs

我正在学习ExpressJS,到目前为止,我已经完成了用户注册部分,但是当我想在完成注册后重定向到主页时,它不是单击提交按钮后显示json。我可以知道我该怎么做。

数据库

 var mysql = require('mysql');

    var con = mysql.createConnection({
      host: "localhost",
      user: "root",
      password: "",
      database:'reciepeapp'
    });

    module.exports  = con
        the ORM



const con = require('./db')

ORM

        const orm = {

          insertOne: function (values, cb) {

     const sqlQuery = "INSERT INTO authentication(username,password)  VALUES ?";
        con.query(sqlQuery, [values],function (err, data) {
          if (err) {
            console.log(err)
            cb(err, null);
          } else {
            cb(null, data);
          }
      });
        },


        }
        module.exports = orm;

the route.js

这里,我将注册过程中获得的数据(注册索引html)插入数据库。它工作正常,但我想重定向到主页。

    const express = require('express');
            const app = express()
            const router = express.Router()
            const bcrypt = require('bcrypt');
            bodyParser = require('body-parser');
            app.use(bodyParser.urlencoded({ extended: true }));

            const orm = require('../models/orm')
            router.get('/',(req,res)=>
                res.render('home')
            )
            router.get('/login',(req,res)=>
                res.render('login')
            )
            router.get('/register',(req,res)=>
                res.render('register')
            )
           router.post("/register",  async (req, res) =>{
        try {
            const hashedPassword = await bcrypt.hash(req.body.password,10)
            values = { username: req.body.name,
                password:hashedPassword  } 


           orm.insertOne(values, function(error) {

               if (error) {
                   return res.status(401).json({
                       message: 'Not able to add'
                   });
               }
               values = { username: values.username,
                password: values.password } 


           orm.insertOne(values, function(error) {

               if (error) {
                   return res.status(401).json({
                       message: 'Not able to add'
                   });
               }
               **return res.send({
                   username: values.username,
                   password: values.password
               });**

           });

           });

        }

    catch {

    }
    });
        module.exports = router






     const express = require('express');
        const app = express()
        const bodyParser = require("body-parser");
        const indexRouter = require('./routes/route')
        const con = require('./models/db')
        con.connect(function(err) {
            if (err) {
              return console.error('error: ' + err.message);
            }

            console.log('Connected to the MySQL server.');
          });
          app.use(bodyParser.urlencoded({ extended: false }));
          app.use(bodyParser.json());
        var exphbs  = require('express-handlebars');
        console.log(__dirname)
        app.use('/',express.static(__dirname + '/public'));
        app.engine('handlebars', exphbs());
        app.set('view engine', 'handlebars');
        app.use('/',indexRouter)
        const PORT = 5000;
        app.listen(PORT,()=>console.log('it started on 5000'))
回答如下:

为此,您需要使用express的重定向方法。

实施例:

var express = require('express');
var app = express();

const urlBase = 'localhost:3000/'

app.post('/', function(req, res) {
    const redirectUrl = "index.html"
    res.redirect(urlBase + redirectUrl);
});

app.listen(3000, function () {
    console.log('Example app listening on port 3000!');
});

文档:Express 4.x Docs

与本文相关的文章

发布评论

评论列表(0)

  1. 暂无评论