sails mysql_Sails+MVC+Mysql+Node+学习笔记一

article/2025/9/14 17:58:47

4cd0cbfcfa0f00b8bca6a6d0b3b5b88d.png

项目构建

安装Node就不多说了,

1.sails安装与项目新建运行

npm install sails -g//全局安装

sails new project-name//新建项目

cd project-name //进入刚才新建项目的目录

sails lift //运行项目,运行原理也是直接在项目目录路径下使用node app.js

npm install sails-mysql --save //--save 把安装的模块写进package.json

到了这一步,环境算是搭建完成。

2.目录结构介绍

b26f9351dc99f1fd00147b43dd65253e.png

2.1api

在api目录下,有着controller、hooks、models、policies、responses和services几个目录

controller目录下存放的就是页面与后台服务器通讯的接口,如果对应的java,那么就是java里面的Action层或者使用Spring

MVC ,那么也是对应的Controller,里面存放的就是接口。

models,数据模型层,也就是实体层,对应java里面的entity。

policies(策略),在controller之前执行,主要工作是session认证,如果session是认证通过了,那么就可以进入下一个策略或者如果是最后一个策略,那么就可以进入controller了,个人感觉像是java里的过滤器或者分发器。

responses,自定义的响应。举个例子,一般从前台发出一个请求后,如果经过了服务器,那么都会给客户端返回一个结果,除了本身自带的响应方式,也可以采用自定义的响应,比如返回一个404页面,返回500页面或者返回字符串等等。

services,业务逻辑处理层,采用es6的Module的语法编写。

2.2assets静态资源层

在这层目录里面有,js,image,styles,templates,这个目录里面主要放的就是静态资源,没什么说的。

2.3config配置层

这层里面有env和locales两层,然后和一些js。

env中有一个development.js里面的注释是如下:

开发环境配置,这个文件夹里面包含了开发团队共享的一些配置,比如api的名称,数据库的密码,如果你在你的Sails应用中使用了版本控制器,这个文件也会提交到你的资源仓库里面,除非你在gitignore中添加了一个信息,表明这个文件是私有的或不公开的。

env中的production.js里的注释如下:

项目环境配置,与development类似,但是从注释中看到要多一些东西,比如配置端口的和日志的

2.4task任务层

这层里面主要放置的是grunt的任务,

2.5views层

这一层主要放置的是作为展示的前台页面,一种情况是使用node做单纯的后台服务器,不处理前台业务,而另外一种情况是采用模块化的思想,对结构进行分层,达到MVC的合理实现,本来Sails就是一个MVC框架所以第一种情况还是不太会出现。

3开始搭建项目

整体流程:新建数据库 -> 新建表 -> 建实体 -> 在sails中搭建环境 -> 编码 -> 得到结果

3.1新建数据库和表

建好mysql数据库,然后新建表,新建表有两种新建方式,一种是自动建表,另外一种是手动建表。手动建表我就不多说了。

3.2链接数据库

设计的主要文件是config里面的connections.js,里面存放的是链接数据库的配置,这里的配置不光只能配置这么一个链接,可以多个不同或相同数据库,代码如下:

mySqlServer: {

adapter: 'sails-mysql',

host: 'localhost',

port: 3306,

user: 'root',

password: 'root',

database: 'myproject',

charset:'utf8'

}

然后下一个重要文件就是models.js里面的文件,里面存放的是数据库使用的那个链接,以上面的名字作为键值,代码如下:

connection: 'mySqlServer',

migrate: 'alter'

connection :表示我是用的就是mySqlServer这个链接

migrate:alter修改,这意味这对这个数据在运行项目时时会根据你实体的设计修改数据中的表结构的。而safe就是要手动建表,那么这个时候你得把实体与数据库对应起来之不过有点麻烦,对于初学者来说还是把实体与数据库手动对应起来吗,因为之后还会有复杂的表间关系,比如说一对一、一对多、多对多等。

3.3建立数据模型

回到api层理的models里面,在里面新建好js文件,值得注意的是文件名称,这个名称直接关系到你之后的查询,删除等操作,我新建的operator的代码如下:

module.exports = {

attributes:{

username:{

type:'string',

required:true

},

password:{

type:'string',

required:true

}

}

}

除了这两个字段,sails会自动给你在表里面新建三个字段,id,createdAt,updatedAt,新建好数据的表结构如下图所示:

1460000010885718

3.4测试数据链接

执行代码在项目路径下进入CMD命令窗口

node app.js或者sails lift,执行完之后如果没有报错且新建好数据库那么就没什么问题了。

那么在这个阶段容易碰到的问题有那些呢:

Consistency violation: A model (`operator`) references a datastore which cannot be found (`otherSql`).

这句话的意思是,operator这个数据模型在otherSql这个链接中找不到。所以遇到这个情况就检查是不是链接配的有问题或者Mysql的服务已关闭。

3.5controller的配置

controller配置里面的是交互的接口,代码如下:

module.exports = {

findOne:function (req,res) {

var id = req.param('id');

if(id){

console.log(id);

operator.find(id, function operatorFound(err, entity) {

res.send(entity,200);

});

}else{

console.log("是啊比");

res.send("失败",500);

}

}

};

一个简单的查询就这么完成了,写完成之后就是验证编写的正确性了。在浏览器输入url:

http://localhost:1337/user/findOne?id=1

查出来的结果如图所示:

1460000010885719

这条数据手动添加的,这样一个很简单的demo算完成了。

4补充

如果想要修改项目访问端口,可在local.js里面添加:port:端口号,项目访问默认路径是user,想要修改的话,可以在route里面修改进行访问。

代码如下:

'/findOne':{

controller:'UserController',

action:'findOne'

}

起哄controller对应的就是controller的文件名(不添加后缀),action:对应的就是里面的方法名。


http://chatgpt.dhexx.cn/article/Avflg7qA.shtml

相关文章

Sails.js自动化Api实践与测试

开发中为了快速交互数据库,于是需要一个能便捷搭建api的平台。于是学习了一下sails.js框架。本次实践是一次摸索,使用了winston日志记录,supertest单元测试,mongo数据库,hashids哈希值解密。 模块: winstonsupertestmo…

五、解读Sails之Waterline源代码

文章目录 sql调试代码跟踪package.json启动调试Auto-Migrating备份原始数据删除所有表再重建回写备份数据 加密库 encrypted-attraes-256-gcm算法encrypted-att 的使用密钥 sql转义 sqlstring日期处理三种方式比较mariaDB(或my-sql)中的日期时间string 对…

一、Sails基础操作

本篇目录 Sails 安装App结构修改端口跨域问题第一个Api控制器用Postman 做Api调试MySql命令行操作MySql8.0版本加密问题 Sails 操作Mysql创建第一个model实现一个model的增删改查 Sails 安装 Sailsjs提供安装脚手架,使用之前可以先安装Sailjs npm install sails -…

sails

sails介绍 node.js的MVC框架,完全继承Express&socket.io的一些API 使用 全局安装 npm install -g sails创建项目 sails new 项目名称选2 选2 启动项目 sails liftsails框架目录介绍 api MVC结构项目代码目录controller层controller层尽量只做数据封装&…

Sails基础之Models层的config/datastores配置

配置与使用 Sails提供并支持多种Models层的存储(https://sailsjs.com/documentation/concepts/extending-sails/adapters/available-adapters), 使用时需要在应用程序项目下安装对应的adapter并且在config/datastores或config/env/productio…

Sails的简单学习

这里贴出Sails的官方 一.Sails的简单介绍 官网上说: The web framework of your dreams.你梦想中的web框架。 Sails让创建自定义、企业级的Node.js应用的工作变得简单。它模拟了大家熟悉的诸如Ruby on Rails这种框架的MVC设置模式,但是也拥有满足现代…

什么是Sails

Sails的关键字 Realtime MVC Framework for Node.js Node.js Sails采用纯粹的Node.js进行构建,你只需要掌握一门javascript编程语言就可以构建Sails应用程序(Web程序); MVC Framework Sails提供了基于MVC结构组织Web程序的基础…

sublime插件anaconda的设置

在 python 编辑环境下,使用 anaconda 完成一些代码补全和提示 具体设置如下 {//由于Anaconda插件本身无法知道Python安装的路径,所以需要设置Python主程序的实际位置"python_interpreter": "../python.exe",//忽略各种空格不对, 超…

Sublime 插件安装

1、百度搜索 Sublime3,进入 Sublime3 官网下载安装文件 注意:不要走到 Sublime2 的官网去下载,也不要使用 Sublime 的其它中文汉化版本; 2、下载 github 的 Package Control 包,下载地址: https://githu…

Sublime插件安装

1.PackageControl 功能:安装包管理 简介:sublime插件控制台,提供添加、删除、禁用、查找插件等功能 使用:https://sublime.wbond.net/installation 安装方法: CTRL ,出现控制台粘贴以下代码至控制台 …

解决sublime无法下载插件问题

解决sublime无法下载插件问题 最近遇到了无法在sublime下载插件的问题,解决方法如下。 首先下载一个文件,地址如下 https://pan.baidu.com/s/1OlC0q8MwiZ_cEbs56SIwzw,提取码为vef9 下载完成后将其解压 再放入sublime文件夹中 接着点开P…

mac sublime安装插件

sublime 安装插件 需要等待一会,在弹出的新窗口,输入要添加的插件的名称,选择确认就可以了 以 Pretty JSON 插件为例,在将json字符串粘贴到文件之后,使用: control command j 进行格式化 调用搜索栏 shi…

java开发sublime插件_开发者最常用的8款Sublime text 3插件

5. SublimeCodeIntel Sublime​Code​Intel 作为一个代码提示和补全插件,支持Javascript、Mason、XBL、XUL、RHTML、SCSS、python、HTML、Ruby、Python3、XML、Sass、XSLT、Django、HTML5、Perl、CSS、Twig、Less、Smarty、Node.js、Tcl、TemplateToolkit 和 PHP 等…

Sublime Text - SublimeREPL插件的配置

1. 菜单Preferences -> Browse Packages,打开安装组件所在的文件夹,进入文件夹Data\Packages\SublimeREPL\config\Python,打开文件Default.sublime-commands,复制如下代码 { "caption": "SublimeREPL: Pyth…

Sublime常用c语言插件

1. Alignment 按等号对齐,强迫症患者必备 Alignment:选中并按ctrlalta就可以使其按照等号对齐 2. 配色方案Enki或者earthbound 3.A file icon 文件图标 4.CoolFormat:C代码格式化 简单好用的代码格式化工具,相当于简化版的Astyl…

Salesforce开发工具Sublime插件(一)

Salesforce开发工具Sublime插件 1. 下载Sublime 3(这是最新) http://www.sublimetext.com/3 进行脑残试的安装方法,下一步即可. 2.装好后打开.exe 3.安装Package Control 这个东东是一个方便 Sublime text 管理插件的插件,这个强大,把它装上去了&#…

关于Sublime的下载与插件安装

Sublime的中文网http://www.sublimetext.cn/ 下载Sublime Sublime的中文网http://www.sublimetext.com/下载Sublime 下载完成 ctrlShiftp 输入install package,确定,此时等待再次出现搜索框,现在就可以下载插件了,现在直接搜索需要的插件名字…

sublime常用插件及安装方式介绍

Sublime Text 是一个文本编辑器(收费软件,可以无限期试用),同时也是一个先进的代码编辑器。Sublime Text是由程序员Jon Skinner于2008年1月份所开发出来,它最初被设计为一个具有丰富扩展功能的Vim。 Sublime Text具有漂…

sublime 的插件安装

sublime 安装插件的方法有两种,一种是直接下载插件压缩包,放在browse packages 中 还有就是线上安装,就是本次要详细记讲的,写这篇文章主要为了记录下,下次方便查找 sublime的插件安装方法 插件安装:如果在…

Sublime插件安装与提高Verilog编写效率插件推荐

前言 相对于Vivado与Quartus自带的编辑器,使用Sublime可以提高Verilog的编写效率。Sublime是可以自己编写插件并使用的,合理的运用插件可以提高开发Verilog生产力。 一、插件安装 1.打开Sublime,点击【Preferences】、【Package Control】…