【发布时间】:2018-09-07 14:07:52
【问题描述】:
我正在尝试创建一个 Node.JS 网站,但我需要创建两个端点才能让我的 IOT 正常工作。目标是创建两个端点,一个 POST 端点,它在其中检索 GET 端点的 JSON 数据,以便在欢迎页面上加载预订的名字和姓氏。我怎样才能做到这一点?
const express = require('express');
const path = require('path');
const hbs = require('express-handlebars');
// Moment.js
var moment = require('moment');
// Init App
const app = express();
// Json File
const json = require("./data.json");
// Javascript Files
const welcomeTime = require('./public/javascript/welcomeTime');
// Load View Engine
app.engine('hbs', hbs({extname: 'hbs', defaultLayout: 'layout',
layoutsDir: __dirname + '/views/layouts/'}));
app.set('views', path.join(__dirname, 'views'));
app.set('view engine', 'hbs');
app.use(express.static(__dirname+'/public'));
// GET Route
app.get('/', function(req, res){
res.render('index', {
title: 'NodePark',
hotel: 'NodePark',
// This woould be the json data I need from the payload
firstName: json.payload.data.Source_FirstName,
lastname: json.payload.data.Source_LastName,
// end of data needed
date: moment().format('ll'),
time: moment().format('LT'),
currentHour: welcomeTime.dayTime()
});
});
// POST Route
app.post('/hotel', function(req, res){
res.redirect('/', {
});
});
// Start Server
app.listen(5000, function(){
console.log('Port 5000 LIVE.');
});
【问题讨论】:
-
让我看看我是否理解正确。您的页面最初是通过
.get('/')路由呈现的。在该页面加载后,您希望在将来的某个时间将预订数据发布到该页面?或者您只是尝试最初呈现来自./data.json的数据?? -
最初它渲染了 .get('/') 路由,但我需要它首先创建一个 POST 端点,在该端点中检索 GET 路由的 json 数据以刷新或加载信息包含信息的页面。我从来没有这样做过,我不知道如何解决这个问题。是不是更清楚了?
-
您从哪里获取数据,来自用户还是其他地方?
标签: json node.js rest express endpoint