Node.js-Error

Node.js-Error

Node.js Error: Cannot find module express的解决办法

1.全局安装express框架,cmd打开命令行,输入如下命令:
        npm install -g express
   express 4.x版本中将命令工具分出来,安装一个命令工具,执行命令:
        npm install -g express-generator
   输入express --version验证

2.如果在执行js文件仍报Error: Cannot find module express错误。
在自己的工程目录下再次执行: npm install express
————————————————
版权声明:本文为CSDN博主「mlsama」的原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接及本声明。
原文链接:https://blog.csdn.net/mlsama/article/details/80211033

TypeError: Router.use() requires a middleware function but got a Object

写路由模块的时候忘记导出路由 module.exports = router

Router 传入全局变量

实现1:module.exports

index.js
var Dev = require('./Routes/Dev.js');
app.use('/Dev', Dev(app));

Router.js
var appObj = null;
module.exports = function(app){
//响应全局变量
appObj = app;
return router;
}

EasyUI DataGrid

方法loadData 加载空参数时

$('#TT').datagrid('loadData',{"total":0,"rows":[]})

参数queryParams使用

  • get
    在req的query属性内能看到参数
  • post
    在req的body属性内能看到参数
  • Error:
    在使用Router时,post方法没有看到body,需要bodyParser。
    在Router内:
    var express = require('express');
    var router = express.Router();
    var bodyParser = require('body-parser');
    router.use(bodyParser());
    router.use(bodyParser.urlencoded({extended:true}));
    

在easyui DataGrid 中使用 linkbutton

如果直接在 field 的 formatter 中直接 return 一个linkbutton 按钮,则无法显示图标,只有普通的 a 标签,无法加载样式,因为easyui 只在页面加载时渲染标签,因此在使用formatter格式化列数据后,动态添加的linkbutton样式无法渲染样式,需要在 datagrid 加载完后进行重新渲染,使用 onLoadSuccess 进行对 linkbutton渲染
$('.classname').linkbutton({text:"test",plain:'true',iconCls:'icon-add'});
————————————————
版权声明:本文为CSDN博主「宝贝一路向前」的原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接及本声明。
原文链接:https://blog.csdn.net/xcmonline/java/article/details/52944026

styler:cellStyler

	<table id="TT" class="easyui-datagrid" title="DataGrid Cell Style" style="width:700px;height:250px"
			data-options="
				singleSelect: true,
				iconCls: 'icon-save'
			">
		<thead>
			<tr>
				<th data-options="field:'itemid',width:80">Item ID</th>
				<th data-options="field:'productid',width:100">Product</th>
				<th data-options="field:'listprice',width:80,align:'right',styler:cellStyler">List Price</th>
				<th data-options="field:'unitcost',width:80,align:'right'">Unit Cost</th>
				<th data-options="field:'attr1',width:250">Attribute</th>
				<th data-options="field:'status',width:60,align:'center'">Status</th>
			</tr>
		</thead>
	</table>
	<script type="text/javascript">
		$(function () {
			loadDevMonitorList();
		});
		function loadDevMonitorList(){
			$('#TT').datagrid('loadData',{"total":0,"rows":[{
			"itemid": 0,
			"listprice": "1"},
			{
			"itemid": 1,
			"listprice": "31"},
			{
			"itemid": 2,
			"listprice": "100"}]})
		};

		function cellStyler(value,row,index){
			if (value){
				return 'background-color:#ffee00;color:red;';
			}
		}
	</script>

注意,如果用脚本重新加载数据,要在加载的时候加上styler:cellStyler

 	$('#Info').datagrid({
        url:'D1/getD2',
        queryParams:{
            D1ID: D1Id
        },
        method:'post',
        fitColumns : true,//自动设置列的宽度
        singleSelect : true,//单选
        striped:true,//条纹
        //height:400,
        pagination:true,//翻页或滚动
        GridLines:'Horizontal',
        columns:[[
            {field:'T',title:'T',styler:cellStyler}
        ]]
    });

nodejs中req.body 为空的问题

WebSite
随着express升级,bodyParser从express中被分离了出来,因此,在使用express新版本的时候,需要npm install body-parser 来安装bodyParser。
在app.js中要引入bodyParser。
var bodyParser = require('body-parser');
其次,需要在app.js中use bodyParser。
app.use(bodyParser());
最后,需要给bodyParser提供参数。
'Content-Type': 'application/x-www-form-urlencoded'
对于bodyParser的参数,根据需要解析的文件类型来进行设置,参数类型有很多种,可以查看具体文献。

如何发现3中的有过期的情况,将改为app.use(bodyParser.urlencoded({extended:false}));

posted @ 2020-07-09 20:46  Theseus‘Ship  阅读(308)  评论(0编辑  收藏  举报
Live2D