如何为GET端点创建POST端点?
我正在尝试创建一个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.');
});
回答如下:
老实说,不是100%肯定你在这里想要实现的目标。但我会采取刺。
听起来你想要从你的获取和你的帖子路线中检索数据。只需将该数据放入函数中,然后从两个路径中调用该函数即可。但我会说,如果你有一个“POST”端点只是从你的“GET”端点检索数据,我会严重质疑为什么你要开始“发布”。您没有创建任何新资源或任何东西。
无论如何,这是我正在谈论的一个例子。
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.');
});
如何为GET端点创建POST端点?
我正在尝试创建一个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.');
});
回答如下:
老实说,不是100%肯定你在这里想要实现的目标。但我会采取刺。
听起来你想要从你的获取和你的帖子路线中检索数据。只需将该数据放入函数中,然后从两个路径中调用该函数即可。但我会说,如果你有一个“POST”端点只是从你的“GET”端点检索数据,我会严重质疑为什么你要开始“发布”。您没有创建任何新资源或任何东西。
无论如何,这是我正在谈论的一个例子。
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.');
});