本篇文章给大家谈谈从字符串mssqlsequelize转换日期和/或时间时转换失败,以及从字符串转换日期或时间转换失败怎么办sqlserver的知识点,同时本文还将给你拓展Heroku运行sequel
本篇文章给大家谈谈从字符串 mssql sequelize 转换日期和/或时间时转换失败,以及从字符串转换日期或时间转换失败怎么办sql server的知识点,同时本文还将给你拓展Heroku 运行 sequelize db:migrate 我的设置:我的 Sequelize 连接参数:到目前为止我尝试过的:、lnmp 环境里安装 mssql 及 mssql 的 php 扩展、lua 访问 mssql 的驱动(好用的)是哪一个?对 mysql/pgsql 的支持不错,但希望先在 mssql 能用起来、NodeJs + koa2 + sequelize-auto + sequelize 搭建项目等相关知识,希望对各位有所帮助,不要忘了收藏本站喔。
本文目录一览:- 从字符串 mssql sequelize 转换日期和/或时间时转换失败(从字符串转换日期或时间转换失败怎么办sql server)
- Heroku 运行 sequelize db:migrate 我的设置:我的 Sequelize 连接参数:到目前为止我尝试过的:
- lnmp 环境里安装 mssql 及 mssql 的 php 扩展
- lua 访问 mssql 的驱动(好用的)是哪一个?对 mysql/pgsql 的支持不错,但希望先在 mssql 能用起来
- NodeJs + koa2 + sequelize-auto + sequelize 搭建项目
从字符串 mssql sequelize 转换日期和/或时间时转换失败(从字符串转换日期或时间转换失败怎么办sql server)
如何解决从字符串 mssql sequelize 转换日期和/或时间时转换失败
我正在尝试使用 Sequelize 和 node js 连接到 MS sql 服务器数据库,当我尝试在 Postman 中测试 post 路由时出现以下错误: “从字符串转换日期和/或时间时转换失败。” 数据库中的字段是datetime类型的,不知道怎么解决转换问题。
这是我尝试进行转换的代码:
async function createFeedback(UserId,Feedback) {
try{
//eroare la data->trebuie rezolvata
return await Feedback.create({
Mesaj: Feedback.Mesaj,Recenzie: Feedback.Recenzie,datafeedback:Date.parse(Feedback.datafeedback),UserId: UserId
});
}
catch(e){
return e.message;
}
}
有人有什么建议吗?
反馈实体定义如下:
import db from ''../dbConfig.js'';
import Sequelize from ''sequelize'';
const Feedback = db.define("Feedback",{
FeedbackId: {
type: Sequelize.INTEGER,primaryKey: true,autoIncrement: true,allowNull: false
},Mesaj: {
type: Sequelize.STRING,Recenzie: {
type: Sequelize.STRING,datafeedback: {
type: Sequelize.DATE,allowNull: false
},UserId: {
type: Sequelize.STRING,allowNull: false
}
})
export default Feedback;
解决方法
首先,设置您的区域设置(根据您所在的地区):
const moment = require(''moment'')
require(''moment/locale/fa'')
moment.locale(''fa'');
然后在您的 createFeedback
函数中,您将拥有:
return await Feedback.create({
Mesaj: feedback.Mesaj,Recenzie: feedback.Recenzie,DataFeedback: moment().format(''YYYY-MM-DD HH:mm:ss.SSS''),UserId: UserId
});
我成功测试了上面的代码。希望这有帮助:)
Heroku 运行 sequelize db:migrate 我的设置:我的 Sequelize 连接参数:到目前为止我尝试过的:
如何解决Heroku 运行 sequelize db:migrate 我的设置:我的 Sequelize 连接参数:到目前为止我尝试过的:
我有一个带有 Postgres 数据库的 Node / Express 应用程序,可以在我的本地机器上完美运行,但我正在努力让它在 Heroku 上启动和运行。问题发生在我推送到 Heroku(成功构建)之后,然后我尝试运行 heroku run sequelize db:migrate
。错误是:
ERROR: self signed certificate
我的设置:
- 节点 v15.12.0
- Postgres 数据库(“Heroku Postgres”插件)
- pg v8.5.1
- sequelize v6.6.2
- sequelize-cli v6.2.0
我的 Sequelize 连接参数:
{
"development": {
"username": "XXXXXX","password": "XXXXXX","database": "party_playlist","host": "127.0.0.1","dialect": "postgres"
},"production": {
"use_env_variable": "DATABASE_URL","dialect": "postgres","dialectOptions": {
"ssl": {
"require": "true","rejectUnauthorized": "false"
}
}
}
}
许多帖子都谈到了这个问题(GitHub:1 | 2 | 3,StackOverflow:1 | 2 | 3) ,并且大多数人指出 pg v8 是问题的根源;但是,没有一个推荐的解决方案对我有用。
到目前为止我尝试过的:
- 将
rejectUnauthorized: false
添加到我的 Sequelize 连接参数 - 将
ssl:true
添加到 dialectOptions 之外的配置 - 将
NODE_TLS_REJECT_UNAUTHORIZED=0
添加到我的 Heroku 环境变量 - 将
PGSSLMODE=no-verify
添加到我的 Heroku 环境变量 - 打开/关闭 Heroku 的
Automatic Certificate Management
功能 - 回滚到 pg v7(各种颠覆)
1-5 无效,并且回滚到 pg v7 会破坏应用程序(在本地,任何对数据库的读取/写入尝试都挂起且没有错误消息;在 heroku 上,db:migrate 命令运行时没有错误消息,但数据库没有更新)。我假设 pg v7 与我的 Node 版本或我的项目中的其他一些包版本不兼容,但我不知道如何通过反复试验来确定兼容版本集是什么,这是不可行的。另外,顺便提一下,这是一个业余项目,所以我不担心 MITM 攻击。
有趣的是,当我运行 heroku pg:psql
时,我能够很好地连接到我的 Heroku 数据库!
有什么想法可以解决这个问题吗?任何和所有的帮助将不胜感激!
解决方法
我从 here 看到您的问题,那里接受的答案对我有用。我观察到我们有相同版本的 pg 和 sequelize 但不同版本的 node。我在 v14.8.0 上。我建议您使用 nvm 切换到该版本并重试,因为我观察到具有奇数的节点版本(如 13,15)经常会出现问题(不过我的观察可能是错误的)。
,这个:
$ awk -F''>antisense_|:'' ''/^ *>antisense_/ {gsub("-",".",$2); print}'' file
>antisense_tadA::NC_009089.1:19643-19848(-)
>antisense_recR::NC_009089.1:22931-23105(+)
>antisense_16s_rRNA::NC_009089.1:25279-26010(-)
tRNA.Leu_tRNA.Met NC_009089.1 30389-30422(+)
tRNA.Arg_tRNA.Gly_tRNA.Asp_tRNA.Val NC_009089.1 30559-31181(-)
$ awk ''BEGIN {OFS=FS="/antisense/|:"} {gsub("-",$2)} 1'' file
>-::NC_009089.1:17609-17804(+)
ATTAAATAGAAAAAATGAATTTAATATAAAAAATTAAAGAAAATTCTAAAAAAAAAAAGATAAGGTCTTA
>antisense_tadA::NC_009089.1:19643-19848(-)
TTTATAAAAATATTTAGTGTTTTTTTTAAATTAGTTCTAAAATAATTTTTAGATATTCATACAAGAGTGT
>-::NC_009089.1:20139-20394(-)
GCTGTTTTTCTATATATGAATTTTGCTACTTTTACATTATTATTATTAAAATAATCTAATTTAAACTCAT
>antisense_recR::NC_009089.1:22931-23105(+)
TCATCTATAATCGCTTTAGATAAAGCTTCCACATCATTAGTATTCATATTAATAATATGAAAAGCCAATC
>antisense_16s_rRNA::NC_009089.1:25279-26010(-)
CTCTATTTTCCTTTTTATTCTATATTTAAATTTTTTATTTACAAGAATATTTTTAATATAACATATTATG
>antisense_tRNA-Leu_tRNA-Met::NC_009089.1:30389-30422(+)
TTTACATAGAGTTAACACTCTAAAAACTGCACA
>antisense_tRNA-Arg_tRNA-Gly_tRNA-Asp_tRNA-Val::NC_009089.1:30559-31181(-)
CTTAACTTCTGTGTTCGGAATGGGAACAGGTGTATCCTCTTTCCCACCAAGTACCATCAGCGCTAAAGAG
$ awk ''BEGIN {OFS=FS="antisense|:"} {gsub("-",$2)} 1'' file
>-::NC_009089.1:17609-17804(+)
ATTAAATAGAAAAAATGAATTTAATATAAAAAATTAAAGAAAATTCTAAAAAAAAAAAGATAAGGTCTTA
>antisense_tadA::NC_009089.1:19643-19848(-)
TTTATAAAAATATTTAGTGTTTTTTTTAAATTAGTTCTAAAATAATTTTTAGATATTCATACAAGAGTGT
>-::NC_009089.1:20139-20394(-)
GCTGTTTTTCTATATATGAATTTTGCTACTTTTACATTATTATTATTAAAATAATCTAATTTAAACTCAT
>antisense_recR::NC_009089.1:22931-23105(+)
TCATCTATAATCGCTTTAGATAAAGCTTCCACATCATTAGTATTCATATTAATAATATGAAAAGCCAATC
>antisense_16s_rRNA::NC_009089.1:25279-26010(-)
CTCTATTTTCCTTTTTATTCTATATTTAAATTTTTTATTTACAAGAATATTTTTAATATAACATATTATG
>antisense|:_tRNA.Leu_tRNA.Metantisense|:antisense|:NC_009089.1antisense|:30389-30422(+)
TTTACATAGAGTTAACACTCTAAAAACTGCACA
>antisense|:_tRNA.Arg_tRNA.Gly_tRNA.Asp_tRNA.Valantisense|:antisense|:NC_009089.1antisense|:30559-31181(-)
CTTAACTTCTGTGTTCGGAATGGGAACAGGTGTATCCTCTTTCCCACCAAGTACCATCAGCGCTAAAGAG
应该是这样的:
"ssl": {
"require": "true","rejectUnauthorized": "false"
}
注意布尔值周围的引号。
愚蠢的错误,但我会留下这个,以防其他人有一天犯同样的错误。
lnmp 环境里安装 mssql 及 mssql 的 php 扩展
小活中用到 mssql, 于是在自己 lnmp 环境中安装各 mssql 数据库
步骤如下:
源码编译安装
# tar zxvf freetds-stable.tgz(解压,)
# cd freetds-0.91
# 编译
# ./configure --prefix=/usr/local/freetds --with-tdsver=8.0 --enable-msdblib
# make
# make install
参数解释:
安装 freetds 到目录 /usr/local/freetds:--prefix=/usr/local/freetds
支持 MSSQL2000:--with-tdsver=8.0 --enable-msdblib
配置 FreeTds 的库文件
将 freetds 的库文件所在路径配置到 LD_LIBRARY_PATH 参数中:
$ export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:/usr/localfreetds/lib/:
或者直接把 etc/bashrc 的文件 bashrc 直接填写上 LD_LIBRARY_PATH=/usr/localfreetds/lib:$LD_LIBRARY_PATH
这么作的目的是为了避免加载 FreeTds 库文件加载不上的情况。
php 里安装 php-mssql 扩展:
cd /download (把php-mssql扩展下载到download目录里)
wget http://cn2.php.net/distributions/php-5.6.30.tar.gz (下载扩展文件,这里要根据你环境中运行的php版本选择对应的扩展版本下载,我这里php是5.6.30的 所以php-mssql扩展下载对应的版本)
tar -zxvf php-5.6.30.tar.gz
cd /php-5.6.30/ext/mssql
/usr/local/php/bin/phpize
./configure --with-php-config=/usr/local/php/bin/php-config --with-mssql=/usr/local/freetds/
make && make install
编译安装后的结果 如下图
同时 mssql.so 也在 php 扩展文件下生成 (如下图)
把 extension="/usr/local/php/lib/php/extensions/no-debug-non-zts-20131226/mssql.so" 添加到 usr/local/php/lib/php.ini 中
引用扩展后,重启 web 服务,通过 phpinfo 查看扩展 mssql 是否开启成功
重启 php /usr/local/php/sbin/php-fpm reload
重启 nginx 进入 nginx 可执行目录 sbin 下,输入命令./nginx -s reload 即可(或者 /application/nginx/sbin/nginx -s reload)
lua 访问 mssql 的驱动(好用的)是哪一个?对 mysql/pgsql 的支持不错,但希望先在 mssql 能用起来
lua 访问 mssql 的驱动(好用的)是哪一个?
lua 对 mysql/pgsql 的支持不错,但对 mssql 的访问,总是不太顺
而目前希望先在 mssql 能用起来
NodeJs + koa2 + sequelize-auto + sequelize 搭建项目
1、使用脚手架初始化koa项目
npm install -g koa-generator
koa2 koa-test-sequelize-auto
yarn install
npm run dev
2、建立mysql数据库,并创建一些假数据
2.1 通过navicat工具,新建一个test数据库
2.2 在test数据库里执行下面这一段sql语句
SET FOREIGN_KEY_CHECKS=0;
-- ----------------------------
-- Table structure for member
-- ----------------------------
DROP TABLE IF EXISTS `member`;
CREATE TABLE `member` (
`id` bigint(20) NOT NULL AUTO_INCREMENT,
`name` varchar(20) DEFAULT NULL,
`sex` tinyint(4) NOT NULL DEFAULT ''0'',
PRIMARY KEY (`id`)
) ENGINE=MyISAM AUTO_INCREMENT=17 DEFAULT CHARSET=utf8;
-- ----------------------------
-- Records of member
-- ----------------------------
INSERT INTO `member` VALUES (''1'', ''jacson'', ''0'');
INSERT INTO `member` VALUES (''2'', ''jacson'', ''0'');
INSERT INTO `member` VALUES (''3'', ''jacson'', ''0'');
INSERT INTO `member` VALUES (''4'', ''jacson'', ''0'');
INSERT INTO `member` VALUES (''5'', ''jacson'', ''0'');
INSERT INTO `member` VALUES (''6'', ''jacson'', ''0'');
INSERT INTO `member` VALUES (''7'', ''jacson'', ''0'');
INSERT INTO `member` VALUES (''8'', ''jacson'', ''0'');
INSERT INTO `member` VALUES (''9'', ''jacson'', ''0'');
INSERT INTO `member` VALUES (''10'', ''jacson'', ''0'');
INSERT INTO `member` VALUES (''11'', ''jacson'', ''0'');
INSERT INTO `member` VALUES (''12'', ''jacson'', ''0'');
INSERT INTO `member` VALUES (''13'', ''jacson'', ''0'');
INSERT INTO `member` VALUES (''14'', ''jacson'', ''0'');
INSERT INTO `member` VALUES (''15'', ''jacson'', ''0'');
INSERT INTO `member` VALUES (''16'', ''jacson'', ''0'');
-- ----------------------------
-- Table structure for user
-- ----------------------------
DROP TABLE IF EXISTS `user`;
CREATE TABLE `user` (
`id` int(11) unsigned zerofill NOT NULL AUTO_INCREMENT,
`name` varchar(255) DEFAULT NULL,
`age` int(11) DEFAULT NULL,
PRIMARY KEY (`id`)
) ENGINE=InnoDB AUTO_INCREMENT=4 DEFAULT CHARSET=utf8;
-- ----------------------------
-- Records of user
-- ----------------------------
INSERT INTO `user` VALUES (''00000000001'', ''你好'', ''15'');
INSERT INTO `user` VALUES (''00000000002'', ''我不好'', ''16'');
INSERT INTO `user` VALUES (''00000000003'', ''他好'', ''17'');
3、建立orm库,并使用
3.1 在当前项目中安装下面这几个依赖(cmd命令行)
yarn add sequelize
yarn add sequelize-auto
yarn add mysql
yarn add mysql2
3.2 在当前目录下,新建一个auto.js文件(记住,自己替换database、user、password、port这几个mysql的参数)
auto.js文件内容如下所示
const SequelizeAuto = require(''sequelize-auto'')
const auto = new SequelizeAuto(
''database'', //数据库的库名
''user'', //mysql数据库的用户名
''password'', //mysql数据库的密码
{
host: ''127.0.0.1'', // 数据库服务器ip
dialect: ''mysql'',
directory: ''./models'', // prevents the program from writing to disk
port: ''3306'', // 数据库运行端口
additional: {
timestamps: false
}
}
)
auto.run(function (err) {
if (err) throw err;
// console.log(auto.tables); // table list
// console.log(auto.foreignKeys); // foreign key list
//生成models表后,直接执行项目
require(''./bin/www'');
});
3.3 在package.json里scripts里添加一行配置
"auto": "node auto",
3.4 执行下面的命令行, 生成models模型(在当前目录下会出现models文件,这些就是模型,如下图所示。)
npm run auto
3.5 在当前目录下,新建一个tool文件夹,文件夹内新建一个db.js文件
db.js文件内容如下所示
const Sequelize = require(''sequelize'');
const fs = require("fs");
const path = require("path");
const basePathG = path.join(__dirname, ''../models'');
let models = fs.readdirSync(basePathG);
dbInit();
async function dbInit() {
let sequelize = await new Sequelize(
''database'', //数据库的库名
''user'', //mysql数据库的用户名
''password'', //mysql数据库的密码
{
''dialect'': ''mysql'', // 数据库使用mysql
''host'': ''127.0.0.1'', // 数据库服务器ip
''port'': ''3306'', // 数据库运行端口
''timestamp'': false, // 这个参数为true是MySQL会自动给每条数据添加createdAt和updateAt字段
''quoteIdentifiers'': true
}
);
models.forEach((item, index) => {
let name = item.substr(0, item.length - 3);
name = name.substring(0, 1).toUpperCase() + name.substring(1) //首字母大写
module.exports[name] = require(basePathG + `/${item}`)(sequelize, Sequelize.DataTypes)
});
}
3.6 到这里,我们就可以随便引用db了。然后可以肆无忌惮的使用orm库里的方法了
3.7 通过url地址访问,查看我们的最终成果
本项目所有代码皆上传至github。github地址:点我
注:皆因sequelize-auto的网上教程有点少,故踩了不少坑,所以,自己写了一个。
关于从字符串 mssql sequelize 转换日期和/或时间时转换失败和从字符串转换日期或时间转换失败怎么办sql server的介绍现已完结,谢谢您的耐心阅读,如果想了解更多关于Heroku 运行 sequelize db:migrate 我的设置:我的 Sequelize 连接参数:到目前为止我尝试过的:、lnmp 环境里安装 mssql 及 mssql 的 php 扩展、lua 访问 mssql 的驱动(好用的)是哪一个?对 mysql/pgsql 的支持不错,但希望先在 mssql 能用起来、NodeJs + koa2 + sequelize-auto + sequelize 搭建项目的相关知识,请在本站寻找。
本文标签: