2017-06-29 107 views
0

我想导入mssql我有一个js文件,它可以正常工作,但是我需要这样做,以便我可以从反应js环境中调用该函数,而不仅仅是节点React JS MSSQL拒绝导入mssql

import React, { Component } from 'react'; 

import TextInput from '../SmallBits/FormItems/TextInput'; 

import sql from 'mssql'; 
//or 
var sql = require('mssql'); 

var dbConfig = { 
    server: 'localhost', 
    database: 'TestDB', 
    user: 'andy', 
    password: 'andy', 
    port: 1433 
}; 

export default class LeftBox extends Component { 
    constructor(props){ 
     super(props); 
     this.state = { 
     name: '', 
     forename: '', 
     surname: '', 
     caseID: '', 
     address: '' 
    } 
    this.handleSurnameChange = this.handleSurnameChange.bind(this); 
    this.handleForenameChange = this.handleForenameChange.bind(this); 
    this.handleCaseIDChange = this.handleCaseIDChange.bind(this); 
    this.handleAddressChange = this.handleAddressChange.bind(this); 
} 

loadEmployees() { 
    var dbConn = new sql.ConnectionPool(dbConfig); 
    dbConn.connect().then(function() { 
     var request = new sql.Request(dbConn); 
     request.query("select * from EmployeeTable").then(function (recordSet) { 
      console.log(recordSet); 
      return recordSet; 
      dbConn.close(); 
     }).catch(function (err) { 
      console.log(err); 
      dbConn.close(); 
     }); 
    }).catch(function (err) { 
     console.log(err); 
    }); 
} 

这是所有被称为无论是进口,并要求在顶部机器人语句的代码给我同样的错误模块未发现:在“C无法解析“MSSQL”:\用户\ wilsona.CHECKMATE \ Desktop \ reactapp \ Workspace \ savvy-crm-test \ src \ components \ Parts \ Boxes'即使全球安装了mssql,我也应该在本地安装

回答

1

这似乎与Errors with node-mssql in a webpack-bundled React app

MSSQL服务器连接库不是客户端JavaScript 库。即使您编写了自己的库,绝对不可以从Web浏览器中建立TCP SQL连接 。

出于安全原因,您绝对不希望允许客户端访问 到SQL Server。您需要启动服务器端环境(例如, Node/Express)以向客户端应用程序公开API。

+0

我正在运行节点,但我需要快递 –

+0

React用于服务器端渲染,这意味着您无法从反应组件进行SQL调用。如果你想这样做,你需要通过类似socket.io或API调用的方式将请求传递给服务器,然后让服务器处理数据库事务。这里是一个网站,应该让你知道你需要什么:https://www.fullstackreact.com/articles/using-create-react-app-with-a-server/ – papasmurf279