2015-09-11 4 views
2

J'ai été chargé de créer une liste de tâches et un formulaire qui télécharge des fichiers png dans nodejs. Ce sont les paquets actuels que j'ai:Nodejs, php et express

{ 
    "name": "todo", 
    "version": "0.0.1", 
    "private": true, 
    "dependencies": { 
    "ejs": "0.8.5", 
    "ejs-locals": "^1.0.2", 
    "express": "3.4.7", 
    "mongoose": "^3.8.1", 
    "php-node": "0.0.2" 
    } 
} 

C'est ma forme php:

<form action="/Upload.php" method="post" enctype="multipart/form-data"> 
Select image to upload: <br> 
    <input type="file" name="fileToUpload" id="fileToUpload"> <br> <br> 
    <input type="submit" value="Upload Image" name="submit"> 
</form> 

Et je charge avec ceci:

app.post('/Upload.php' ,function (req, res){ 
res.render("Upload.php"); 
}); 

Ceci est l'ensemble app.js:

/** 
* Module dependencies. 
*/ 
require('./db'); 

var express = require('express'); 
var routes = require('./routes'); 
var http = require('http'); 
var php  = require('php-node'); 
var path = require('path'); 
var app  = express(); 
var engine = require('ejs-locals'); 


// all environments 
app.set('port', process.env.PORT || 3001); 
app.engine('ejs', engine); 
app.set('views', path.join(__dirname, 'views')); 
app.set('view engine', 'ejs'); 
app.use(express.favicon()); 
app.use(express.logger('dev')); 
app.use(express.bodyParser()); 
app.use(express.json()); 
app.use(express.urlencoded()); 
app.use(express.methodOverride()); 
app.use(app.router); 
app.use(express.static(path.join(__dirname, 'public'))); 

// development only 
if ('development' == app.get('env')) { 
    app.use(express.errorHandler()); 
} 

app.get('/', routes.index); 
app.get('/edit/:id', routes.edit); 
app.get('/destroy/:id', routes.destroy); 
app.post('/create', routes.create); 
app.post('/update/:id', routes.update); 

app.post('/Upload.php' ,function (req, res){ 
    res.render("Upload.php"); 
}); 

http.createServer(app).listen(app.get('port'), function(){ 
    console.log('Express server listening on port ' + app.get('port')); 
}); 

erreur journal:

Express 
500 Error: Cannot find module 'php' 

at Function.Module._resolveFilename (module.js:336:15) 
at Function.Module._load (module.js:278:25) 
at Module.require (module.js:365:17) 
at require (module.js:384:17) 
at new View (C:\todo\node_modules\express\lib\view.js:43:49) 
at Function.app.render (C:\todo\node_modules\express\lib\application.js:486:12) 
at ServerResponse.res.render (C:\todo\node_modules\express\lib\response.js:798:7) 
at C:\todo\app.js:42:6 
at callbacks (C:\todo\node_modules\express\lib\router\index.js:164:37) 
at param (C:\todo\node_modules\express\lib\router\index.js:138:11) 

Est-il possible de charger la page .php sans moteur changer?

+0

Pourquoi avez-vous besoin de PHP ici? –

+0

Ouais j'essaie avec juste nodejs et multer maintenant. Cela aurait été plus facile pour moi si j'avais pu utiliser le script .php. – Carrier

Répondre

0

Si vous souhaitez utiliser PHP Node comme moteur de vue avec ejs, veuillez modifier le moteur de vue set comme suit. Je viens de tester le code et cela fonctionne pour moi

app.engine('ejs', engine); 
app.set('view engine', 'ejs'); 
app.engine('php', phpnode); 
app.set('view engine', 'php'); 
+0

Si je change le moteur en nœud php, tout le reste cessera de fonctionner. Je dois garder le moteur ejs tout en pouvant charger la page .php. – Carrier