Nodejs, php and express
Nodejs, php and express
我的任务是创建一个待办事项列表和一个在nodejs中上传png文件的表单。这些是我现有的软件包:
{
"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"
}
}
这是我的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>
我用这个来加载它:
app.post('/Upload.php' ,function ( req, res ){
res.render("Upload.php");
});
这是整个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' ));
} );
错误日志: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)
有没有办法加载.php页面而不改变引擎?
如果您想使用PHP Node作为您的视图引擎以及ejs,那么请更改set视图引擎如下。我刚刚测试了代码,它为我工作
app.engine( 'ejs', engine );
app.set( 'view engine', 'ejs' );
app.engine('php', phpnode);
app.set('view engine', 'php');
相关文章:
- Express Session and Cookie
- Use React and Express
- jade, express, and mysql results
- use express.bodyParser() and passport.js
- Express.js res.render() and res.redirect()
- Cluster with Express.js and Kue.js
- Node.js and Express - 将JSON对象从SoundCloud API发送到前端使其成为字符串
- NodeJS/Express app.use sequence and usage
- NodeJS and express, ENOENT on view file
- Node JS, Socket.IO, Express and Http connection
- 'Write after end' error with Express, csvtojson and
- Express.js and Angular.js html5mode (Avoiding # in url)
- FailureFlash with Passportjs and Express
- Express, http-proxy-middleware and net::ERR_CONNECTION_REFUS
- Angular2 Webpack and Express
- Node.js, express, jade, highcharts and 2D array
- Nodejs, php and express
- CORS Error: Angular.JS, Node.JS and Express
- NodeJS, express and mongoDB - mapping logic
- Express and Cheerio/JSDOM