我正在尝试创建一个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.');
});
答案 0 :(得分:0)
老实说,不是100%知道您要在这里实现什么。但是我要刺一针。
听起来像您想要从获取路线和发布路线中检索的数据。只需将数据放入函数中,然后从两条路径中调用该函数即可。但是我要说的是,如果您有一个“ POST”端点,而该端点只是从“ GET”端点中检索数据,那么我会严重质疑您为什么要以“ POSTING”开头。您没有在创建任何新资源或任何东西。
无论如何,这是我所谈论的例子。
const express = require('express');
const path = require('path');
const hbs = require('express-handlebars');
// Moment.js
const 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`));
const getMyData = () => ({
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()
});
// GET Route
app.get('/', (req, res) => {
res.render('index', getMyData());
});
// POST Route
app.post('/hotel', (req, res) => {
const theData = getMyData(); // use it here??? I have no idea....
res.redirect('/', {
});
});
// Start Server
app.listen(5000, () => {
console.log('Port 5000 LIVE.');
});