Node.jsの使用は比較的新しいです。私は、ユーザーデータ(具体的には、ユーザーが作成された日付)を取得し、毎日、毎週、毎月、毎年のユーザーの量を吐き出すアプリケーションを作成しました。これはPostman経由で正常にテストされました。pugjsに接続するノードアプリケーション
pugjを正常にインストールしました。計算されたデータをpugファイルに転送しようとしています。 userAPIModel.js、同様userAPIRoutes.jsとserver.jsファイル、すべてこのチュートリアルの後にモデル化して
userAPIController.js
'use strict';
const mongoose = require('mongoose'),
express = require('express'),
app = express(),
moment = require('moment'),
pug = require('pug'),
User = mongoose.model('Users'),
compiledFunction = pug.compile('results.pug');
exports.list_all_users = function(req, res) {
User.find({}, function(err, user) {
if (err)
res.send(err);
res.json(user);
});
};
exports.create_a_user = function(req, res) {
var new_task = new User(req.body);
new_task.save(function(err, user) {
if (err)
res.send(err);
res.json(user);
});
};
exports.calculate = function(req, res) {
User.find({}, function(err, userArray) { //the second parameter, userArray, is an array that is returned to you.
if (err)
res.send(err);
var daily_count = 0;
var weekly_count = 0;
var monthly_count = 0;
var yearly_count = 0;
var total_count = 0;
for (var i = 0; i < userArray.length; i++) {
total_count++;
var timeString = userArray[i].Created_date;
var dayString = timeString.getUTCDate();
var monthString = timeString.getUTCMonth()+1;
var yearString = timeString.getUTCFullYear();
var todaysDate = new Date();
var todaysDay = todaysDate.getUTCDate();
var todaysMonth = todaysDate.getUTCMonth()+1;
var todaysYear = todaysDate.getUTCFullYear();
// Calculating Daily Users
if (dayString === todaysDay && monthString === todaysMonth && yearString === todaysYear) {
daily_count += 1;
}
// Calculating Weekly Users
var weekDifference = todaysDay - dayString;
if (monthString === todaysMonth && yearString === todaysYear && (weekDifference >= 0 && weekDifference <= 7)) {
weekly_count += 1;
}
// Calculating Monthly Users
if (monthString === todaysMonth && yearString === todaysYear) {
monthly_count += 1;
}
// Calculating Yearly Users
if (yearString === todaysYear) {
yearly_count += 1;
}
}
res.json({
"daily_count":daily_count,
"weekly_count":weekly_count,
"monthly_count":monthly_count,
"yearly_count":yearly_count,
"total_count":total_count
});
});
};
exports.delete_a_user = function(req, res) {
User.remove({
_id: req.params.userId
}, function(err, user) {
if (err)
res.send(err);
res.json({ message: 'User successfully deleted' });
});
};
:私は、コントローラ、モデルとルートファイルすべて以下に示すがあります。 https://www.codementor.io/olatundegaruba/nodejs-restful-apis-in-10-minutes-q0sgsfhbd
また、pugファイルが入ったviewsフォルダもあります。コントローラに表示されているように毎日、毎週、毎月、毎年のユーザーを受け取り、pugに転送する方法が不明です。私は#{}のpug構文を理解しています。しかし、私はどのように情報を取得するかについてはわかりません。
app.get('/', function (req, res) {
res.send(compiledFunction({
dCount: daily_count,
wCount: weekly_count,
mCount: monthly_count,
yCount: yearly_count,
tCount: total_count
}));
})
そしてそこからパグにそれをインポートする:私はデータがあり、そのようにres.send機能を使用しているコントローラファイルに行く試みました。唯一の懸案事項は、私はこれがコントローラをpugファイルにリンクする正しい方法であるとは思わないか、正しい機能を使用しているということです。
私は間違って何をしていますか? JSONが出力されている場所であるので、コントローラに上記を入れておきたいと思っていますが、これをサーバーファイルに置くことに慣れています。