Спасибо за чтение, надеюсь, моя презентация понятна читателю и удачно показывает мое непонимание.Я очень новичок в узле.
Я использую node.js с eonasdan datetime.
Проблема, которую мне нужно решить, состоит в том, чтобы напечатать время эпохи из console.log в epoch.js из даты, отправленной нажатием кнопки вepoch.ejs.Epoch.ejs просматривается в браузере, и код html / ejs легко отображает предупреждение с эпохой в нем.
Но у меня проблемы с отправкой данных для печати из console.log в формате эпохи (1548694980).Я могу распечатать его только в console.log в следующем формате: 28.01.2009 12:03
Мне все равно, преобразую ли я его в epoch.ejs или epoch.js.
В настоящее время, когда я фиксирую дату в файле ejs и использую body-parser, чтобы отправить ее в файл узла epoch.ejs.
Я правильно или, возможно, ошибочно считаю, что он доступен в функции javascript.Одним из решений может быть использование глобальной переменной и получение ее в теле.Некоторые попытки потерпели неудачу.Описано ниже.
Если поместить это в верхнюю часть скрипта в html, сборщик даты и времени не сможет отобразить начальную дату.Поэтому создание глобальной переменной в javascript имеет конфликт, который я не могу найти:
var start = $('#dateTimeStart').data('DateTimePicker').date().unix()
alert(start)
Код node.js (начинающийся с 'node epoch.js'):
//setup
var express = require('express'),
app = express(),
bodyParser = require('body-parser'),
path = require('path')
app.set('view engine','ejs');
app.use(bodyParser.urlencoded({ extended: false }))
app.use(bodyParser.json())
app.use(express.static(path.join(__dirname, 'public')));
app.get("/", function(req, res, next){
res.render("epoch")
});
app.post("/postDateTimeStart", function(req, res, next) {
console.log(req.body.start);
times(req.body, res);
);
pp.get('/getJson', function (req, res) {
// If it's not showing up, just use req.body to see what is actually being passed.
console.log(req.body.selectpicker);
});
function times(parms, res){
//get parms based on input name attribute from html and parse
var startTime = parms.dateTimeStart;
var dateStart = parms.start
res.writeHead(200, { 'Content-Type': 'text/html' });
res.end("start time: " + startTime);
console.log(startTime, dateStart)
}
app.listen(3000,function(){
console.log("serving test demo on port 3000")
});
html (заканчивается на ejs):
<!DOCTYPE html>
<header>
<title>Send Epoch to Node Test</title>
<script src="/jquery.js" type="text/javascript"></script>
<script src="/moment.js" type="text/javascript"></script>
<script src="/bootstrap.js" type="text/javascript"></script>
<script src="/bootstrap-datetimepicker.min.js" type="text/javascript"></script>
<link rel="stylesheet" type="text/css" href="/bootstrap.css"></link>
<link rel="stylesheet" type="text/css" href="/bootstrap-datetimepicker.css"></link>
<script type="text/javascript">
$(function () {
$('#dateTimeStart').datetimepicker({
daysOfWeekDisabled: [0, 6]
});
});
function getValue() {
var dTstart = $('#dateTimeStart').data("DateTimePicker").date();
if( dTstart ){
/* HOW DO I GET THIS VARIABLE TO BE SEEN BY NODE? */
alert(dTstart.unix());
}
}
$('#dateTimeStart').datetimepicker();
var start = $('#dateTimeStart').data('DateTimePicker').date().unix()
alert(start)
</script>
</header>
<body>
<form action="/postDateTimeStart" method="post">
<div class="col-md-12">
<div class="col-md-1">
<div class="form-group">
<label for="exampleFormControlSelect1">Draw</label>
<p><button onclick="getValue()" type="submit" class="btn btn-custom btn-block">Graph it!</button></p>
</div>
</div>
<div class="col-md-2">
<div class="form-group">
<label for='dateTimeStart'>Start Date-and-Time</label>
<div class='input-group date' id='dateTimeStart'>
<input type='text' class="form-control" name='dateTimeStart' />
<span class="input-group-addon">
<span class="glyphicon glyphicon-calendar">
</span>
</span>
</div>
</div>
</div>
</div>
</body>
</html>
Ожидаемые результаты будут в журнале консоли при нажатии кнопки:
1548695940 28.01.2009 12:19 1548695940
Фактические результаты после нажатия на кнопку:
undefined 28.01.2009 12:18 undefined