using PHP file instead of EJS templating

Multi tool use
Multi tool use
The name of the pictureThe name of the pictureThe name of the pictureClash Royale CLAN TAG#URR8PPP


using PHP file instead of EJS templating



I am trying to use add.php instead to add.ejs(templating) in my node express rest api modules. I have tried using 'php-node-npm' but after starting the server getting the following error:


var render = require('../view/index.js')({bin:"c://php//"});
^

TypeError: require(...) is not a function
at Object.<anonymous>



I am new to this, so unable to figure it out. Here's my code and directory structure of my files:



dir


const express = require("express");
const router = express.Router();
const mongoose = require("mongoose");
const multer = require('multer');
const path = require('path');
const crypto = require('crypto');
const GridFsStorage = require('multer-gridfs-storage');
const Grid = require('gridfs-stream');
const methodOverride = require('method-override');

const app = express();

// Middleware
var render = require('../view/index.js')({bin:"c://php//"});

render(__dirname+'./add.php', {}, function(e, r) {
console.log(r);
})

// use PHP as view engine in Express
var phpnode = require('../view/index.js')({bin:"c:\php\php.exe"});

router.set('view', __dirname);
router.engine('php', phpnode);
router.set('view engine', 'php');


// Mongo URI


// Create storage engine
const storage = new GridFsStorage({
url: mongoURI,
file: (req, file) => {
return new Promise((resolve, reject) => {
crypto.randomBytes(16, (err, buf) => {
if (err) {
return reject(err);
}
const filename = buf.toString('hex') + path.extname(file.originalname);
const fileInfo = {
filename: filename,
bucketName: 'uploads'
};
resolve(fileInfo);
});
});
}
});
const upload = multer({ storage });

// @route GET /
// @desc Loads form
router.all('./add.php', function(req, res) {
res.render('add');
})


// @route POST /upload
// @desc Uploads file to DB
router.post('/upload', upload.single('file'), (req, res) => {
// res.json({ file: req.file });
res.redirect('/');
});

// @route GET /files
// @desc Display all files in JSON
router.get('/files', (req, res) => {
gfs.files.find().toArray((err, files) => {
// Check if files
if (!files || files.length === 0) {
return res.status(404).json({
err: 'No files exist'
});
}

// Files exist
return res.json(files);
});
});

// @route GET /files/:filename
// @desc Display single file object
router.get('/files/:filename', (req, res) => {
gfs.files.findOne({ filename: req.params.filename }, (err, file) => {
// Check if file
if (!file || file.length === 0) {
return res.status(404).json({
err: 'No file exists'
});
}
// File exists
return res.json(file);
});
});

// @route GET /image/:filename
// @desc Display Image
router.get('/image/:filename', (req, res) => {
gfs.files.findOne({ filename: req.params.filename }, (err, file) => {
// Check if file
if (!file || file.length === 0) {
return res.status(404).json({
err: 'No file exists'
});
}

// Check if image
if (file.contentType === 'image/jpeg' || file.contentType === 'image/png') {
// Read output to browser
const readstream = gfs.createReadStream(file.filename);
readstream.pipe(res);
} else {
res.status(404).json({
err: 'Not an image'
});
}
});
});

// @route DELETE /files/:id
// @desc Delete file
router.delete('/files/:id', (req, res) => {
gfs.remove({ _id: req.params.id, root: 'uploads' }, (err, gridStore) => {
if (err) {
return res.status(404).json({ err: err });
}

res.redirect('/');
});
});


const Product = require("../models/product");

router.post("/", upload.single('file'), (req, res, next) => {
const product = new Product({
_id: new mongoose.Types.ObjectId(),
name: req.body.name,
price: req.body.price,
productImage: req.file,
reference: req.body.reference,
description: req.body.description,
quantity: req.body.quantity,
date: req.body.date,
category: req.body.category,
newProduct: req.body.newProduct,
relatedProduct: req.body.relatedProduct
});
product
.save()
.then(result => {
console.log(result);
res.status(201).json({
message: "Created product successfully",
createdProduct: {
name: result.name,
price: result.price,
_id: result._id,
request: {
type: 'GET',
url: "http://localhost:3000/products/" + result._id
}
}
});
})
.catch(err => {
console.log(err);
res.status(500).json({
error: err
});
});
});









By clicking "Post Your Answer", you acknowledge that you have read our updated terms of service, privacy policy and cookie policy, and that your continued use of the website is subject to these policies.

XB vsvPU50 xiGf7vV9iGwX T,hZ5uAIdtd Ef5M,r,Z2ith3tSB cMXygmVmnbGOd7L
g RkKx37CasY A4X6pACGh97PMBqCRCWPtjk9iyPOzlPpgKNEjfFaeKyYd RbGG,c,A9 sYb11oZl,W8V93SiUC

Popular posts from this blog

Makefile test if variable is not empty

Visual Studio Code: How to configure includePath for better IntelliSense results

Will Oldham